annotate lisp/textmodes/org.el @ 73966:3e367f69c68c

(org-metaleft): Call `org-outdent-item' on bullets. (org-metaright): Call `org-indent-item' on bullets. (org-timestamp-change): Set `org-last-changed-timestamp'. (org-current-line): Make sure (bolp) returns correct result. (org-agenda-change-all-lines): Make sure highlighting TODO always works.
author Carsten Dominik <dominik@science.uva.nl>
date Mon, 13 Nov 2006 08:37:36 +0000
parents faaa0f903f20
children a75094e97e8f
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/
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
8 ;; Version: 4.55
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 ;; --------------
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
64 ;; Version 4.55
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
65 ;; - Bug fixes.
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
66 ;;
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
67 ;; Version 4.54
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
68 ;; - Improvements to fast tag selection
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
69 ;; + 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
70 ;; + 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
71 ;; - 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
72 ;; `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
73 ;; - Bug fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
74 ;;
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
75 ;; Version 4.53
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
76 ;; - 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
77 ;; - 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
78 ;; - 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
79 ;; - 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
80 ;; - Bug fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
81 ;;
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
82 ;; Version 4.52
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
83 ;; - 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
84 ;; - 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
85 ;; predefined list.
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.51
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
89 ;; - 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
90 ;; - 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
91 ;; `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
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.50
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
95 ;; - Closing a TODO item can record an additional note.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
96 ;; See variables `org-log-done' and `org-log-note-headings'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
97 ;; - Inserting headlines and bullets can leave an extra blank line.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
98 ;; See variable `org-blank-before-new-entry'. (Ed Hirgelt patch)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
99 ;; - [[bracket links]] in the agenda are active just as in org-mode buffers.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
100 ;; - C-c C-o on a date range displays the agenda for exactly this range.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
101 ;; - The default for `org-cycle-include-plain-lists' is back to nil.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
102 ;; - Calls to `org-occur' can be stacked by using a prefix argument.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
103 ;; - The options `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
104 ;; now always default to `t', but can be customized differently for
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
105 ;; different types of sparse trees or jump commands.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
106 ;; - Bug fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
107 ;;
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
108 ;; Version 4.49
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
109 ;; - Agenda views can be made in batch mode from the command line.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
110 ;; - `org-store-link' does the right thing in dired-mode.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
111 ;; - File links can contain environment variables.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
112 ;; - Full Emacs 21 compatibility has been restored.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
113 ;; - Bug fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
114 ;;
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
115 ;; Version 4.47
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
116 ;; - Custom commands may produce an agenda which contains several blocks,
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
117 ;; each block created by a different agenda command.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
118 ;; - Agenda commands can be restricted to the current file, region, subtree.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
119 ;; - The timeline command must now be called through the agenda
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
120 ;; dispatcher (C-c a L). `C-c C-r' no longer works.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
121 ;; - Agenda items can be sorted by tag. The *last* tag is used for this.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
122 ;; - The prefix and the sorting strategy for agenda items can depend
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
123 ;; upon the agenda type.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
124 ;; - The handling of `mailto:' links can be customized, see the new
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
125 ;; variable `org-link-mailto-program'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
126 ;; - `mailto' links can specify a subject after a double colon,
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
127 ;; like [[mailto:carsten@orgmode.org::Org-mode is buggy]].
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
128 ;; - In the #+STARTUP line, M-TAB completes valid keywords.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
129 ;; - In the #+TAGS: line, M-TAB after ":" inserts all currently used tags.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
130 ;; - Again full Emacs 21 support: Checkboxes and publishing are fixed.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
131 ;; - More minor bug fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
132 ;;
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
133 ;; Version 4.45
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
134 ;; - Checkbox lists can show statistics about checked items.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
135 ;; - C-TAB will cycle the visibility of archived subtrees.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
136 ;;; - Documentation about checkboxes has been moved to chapter 5.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
137 ;; - Bux fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
138 ;;
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
139 ;; Version 4.44
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
140 ;; - Clock table can be done for a limited time interval.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
141 ;; - Obsolete support for the old outline mode has been removed.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
142 ;; - Bug fixes and code cleaning.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
143 ;;
71652
4df24233cf1e (org-agenda-get-todos): Skip subtree also if entry is
Carsten Dominik <dominik@science.uva.nl>
parents: 71567
diff changeset
144 ;; Version 4.43
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
145 ;; - Bug fixes
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
146 ;; - `s' key in the agenda saves all org-mode buffers.
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
147 ;;
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
148 ;; Version 4.41
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
149 ;; - Shift-curser keys can modify inactive time stamps (inactive time
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
150 ;; stamps are the ones in [...] brackets.
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
151 ;; - Toggle all checkboxes in a region/below a headline.
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
152 ;; - Bug fixes.
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
153 ;;
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154 ;;; Code:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
156 (eval-when-compile
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
157 (require 'cl)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
158 (require 'calendar))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
159 ;; 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
160 ;; the file noutline.el being loaded.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
161 (if (featurep 'xemacs) (condition-case nil (require 'noutline)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
162 ;; 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
163 (require 'outline) (require 'noutline)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
164 ;; Other stuff we need.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 (require 'time-date)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
166 (require 'easymenu)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
168 ;;; Customization variables
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
169
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
170 (defvar org-version "4.55"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
171 "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
172 (defun org-version ()
8e7a2f6f9fa7 (org-version): Unnecessary prefix arg removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 59547
diff changeset
173 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
174 (message "Org-mode version %s" org-version))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
176 ;; Compatibility constants
70161
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
177 (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
178 (defconst org-format-transports-properties-p
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
179 (let ((x "a"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
180 (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
181 (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
182 "Does format transport text properties?")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
183
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
184 (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
185 "Outline-based notes management and organizer."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
186 :tag "Org"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
187 :group 'outlines
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
188 :group 'hypermedia
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
189 :group 'calendar)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
190
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
191 (defgroup org-startup nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
192 "Options concerning startup of Org-mode."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
193 :tag "Org Startup"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
194 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
195
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
196 (defcustom org-startup-folded t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
197 "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
198 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
199 the following lines anywhere in the buffer:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
200
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
201 #+STARTUP: fold
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
202 #+STARTUP: nofold
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
203 #+STARTUP: content"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
204 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
205 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
206 (const :tag "nofold: show all" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
207 (const :tag "fold: overview" t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
208 (const :tag "content: all headlines" content)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
209
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
210 (defcustom org-startup-truncated t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
211 "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
212 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
213 uninteresting. Also tables look terrible when wrapped."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
214 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
215 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
216
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
217 (defcustom org-startup-align-all-tables nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
218 "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
219 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
220 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
221 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
222 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
223 #+STARTUP: align
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
224 #+STARTUP: noalign"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
225 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
226 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
227
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
228 (defcustom org-startup-with-deadline-check nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
229 "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
230 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
231 immediate reminder of any due deadlines.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
232 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
233 the following lines anywhere in the buffer:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
234 #+STARTUP: dlcheck
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
235 #+STARTUP: nodlcheck"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
236 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
237 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
238
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
239 (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
240 "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
241 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
242 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
243 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
244 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
245 has been set."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
246 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
247 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
248
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
249 (defcustom org-CUA-compatible nil
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
250 "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
251 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
252 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
253 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
254 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
255 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
256
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
257 S-RET -> C-S-RET
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
258 S-up -> M-p
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
259 S-down -> M-n
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
260 S-left -> M--
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
261 S-right -> M-+
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
262
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
263 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
264 `org-disputed-keys'.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
265
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
266 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
267 a restart of Emacs to become effective."
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
268 :group 'org-startup
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
269 :type 'boolean)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
270
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
271 (defvar org-disputed-keys
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
272 '((S-up [(shift up)] [(meta ?p)])
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
273 (S-down [(shift down)] [(meta ?n)])
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
274 (S-left [(shift left)] [(meta ?-)])
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
275 (S-right [(shift right)] [(meta ?+)])
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
276 (S-return [(shift return)] [(control shift return)]))
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
277 "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
278 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
279 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
280
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
281 (defun org-key (key)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
282 "Select a key according to `org-CUA-compatible'."
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
283 (nth (if org-CUA-compatible 2 1)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
284 (or (assq key org-disputed-keys)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
285 (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
286
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
287 (defcustom org-ellipsis nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
288 "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
289 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
290 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
291 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
292 effective."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
293 :group 'org-startup
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
294 :type '(choice (const :tag "Default" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
295 (string :tag "String" :value "...#")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
296
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
297 (defvar org-display-table nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
298 "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
299
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
300 (defgroup org-keywords nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
301 "Keywords in Org-mode."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
302 :tag "Org Keywords"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
303 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
304
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
305 (defcustom org-deadline-string "DEADLINE:"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
306 "String to mark deadline entries.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
307 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
308 terminated by a colon. You can insert a schedule keyword and
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
309 a timestamp with \\[org-deadline].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
310 Changes become only effective after restarting Emacs."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
311 :group 'org-keywords
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
312 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
313
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
314 (defcustom org-scheduled-string "SCHEDULED:"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
315 "String to mark scheduled TODO entries.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
316 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
317 terminated by a colon. You can insert a schedule keyword and
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
318 a timestamp with \\[org-schedule].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
319 Changes become only effective after restarting Emacs."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
320 :group 'org-keywords
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
321 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
322
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
323 (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
324 "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
325 :group 'org-keywords
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
326 :type 'string)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
327
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
328 (defcustom org-clock-string "CLOCK:"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
329 "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
330 :group 'org-keywords
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
331 :type 'string)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
332
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333 (defcustom org-comment-string "COMMENT"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
334 "Entries starting with this keyword will never be exported.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
335 An entry can be toggled between COMMENT and normal with
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
336 \\[org-toggle-comment].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
337 Changes become only effective after restarting Emacs."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338 :group 'org-keywords
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
339 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
340
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
341 (defcustom org-quote-string "QUOTE"
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
342 "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
343 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
344 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
345 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
346 \\[org-toggle-fixed-width-section]."
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
347 :group 'org-keywords
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
348 :type 'string)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
349
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
350 (defgroup org-structure nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
351 "Options concerning the general structure of Org-mode files."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
352 :tag "Org Structure"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
353 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
354
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
355 (defgroup org-cycle nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
356 "Options concerning visibility cycling in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
357 :tag "Org Cycle"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
358 :group 'org-structure)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
359
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
360 (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
361 "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
362 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
363 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
364 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
365 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
366 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
367 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
368 of the buffer."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
369 :group 'org-cycle
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
370 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
371
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
372 (defcustom org-cycle-emulate-tab t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
373 "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
374 nil Never
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
375 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
376 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
377 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
378 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
379 visibility is cycled."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
380 :group 'org-cycle
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
381 :type '(choice (const :tag "Never" nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
382 (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
383 (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
384 (const :tag "Everywhere except in headlines" t)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
385 ))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
386
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
387 (defcustom org-cycle-hook '(org-cycle-hide-archived-subtrees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
388 org-optimize-window-after-visibility-change)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
389 "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
390 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
391 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
392 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
393 `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
394 the values `folded', `children', or `subtree'."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
395 :group 'org-cycle
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
396 :type 'hook)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
397
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
398 (defgroup org-edit-structure nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
399 "Options concerning structure editing in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
400 :tag "Org Edit Structure"
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
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
403 (defcustom org-odd-levels-only nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
404 "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
405 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
406 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
407 handled by the exporters.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
408 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
409 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
410 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
411 lines to the buffer:
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
412
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
413 #+STARTUP: odd
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
414 #+STARTUP: oddeven"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
415 :group 'org-edit-structure
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
416 :group 'org-font-lock
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
417 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
418
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
419 (defcustom org-adapt-indentation t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
420 "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
421 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
422 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
423 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
424 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
425 :group 'org-edit-structure
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
426 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
427
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
428 (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
429 (plain-list-item . nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
430 "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
431 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
432 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
433 :group 'org-edit-structure
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
434 :type '(list
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
435 (cons (const heading) (boolean))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
436 (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
437
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
438 (defcustom org-insert-heading-hook nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
439 "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
440 :group 'org-edit-structure
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
441 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
442
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
443 (defcustom org-enable-fixed-width-editor t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
444 "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
445 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
446 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
447 See also the QUOTE keyword."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
448 :group 'org-edit-structure
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
449 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
450
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
451 (defgroup org-sparse-trees nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
452 "Options concerning sparse trees in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
453 :tag "Org Sparse Trees"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
454 :group 'org-structure)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
455
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
456 (defcustom org-highlight-sparse-tree-matches t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
457 "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
458 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
459 changed by an edit command."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
460 :group 'org-sparse-trees
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
461 :type 'boolean)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
462
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
463 (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
464 "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
465 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
466 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
467 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
468 `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
469 :group 'org-sparse-trees
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
470 :group 'org-time
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
471 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
472
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
473 (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
474 "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
475 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
476 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
477 contexts. Valid contexts are
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
478 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
479 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
480 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
481 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
482 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
483 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
484 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
485 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
486 :group 'org-sparse-trees
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
487 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
488 (const :tag "Always" t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
489 (const :tag "Never" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
490 (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
491 (cons
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
492 (choice :tag "Context"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
493 (const agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
494 (const org-goto)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
495 (const occur-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
496 (const tags-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
497 (const link-search)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
498 (const mark-goto)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
499 (const bookmark-jump)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
500 (const default))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
501 (boolean)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
502
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
503 (defcustom org-show-following-heading '((default . t))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
504 "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
505 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
506 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
507 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
508 `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
509 unnecessary clutter.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
510 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
511 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
512 :group 'org-sparse-trees
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
513 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
514 (const :tag "Always" t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
515 (const :tag "Never" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
516 (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
517 (cons
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
518 (choice :tag "Context"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
519 (const agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
520 (const org-goto)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
521 (const occur-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
522 (const tags-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
523 (const link-search)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
524 (const mark-goto)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
525 (const bookmark-jump)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
526 (const default))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
527 (boolean)))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
528
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
529 (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
530 "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
531 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
532 as possible."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
533 :group 'org-sparse-trees
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
534 :type 'hook)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
535
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
536 (defgroup org-plain-lists nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
537 "Options concerning plain lists in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
538 :tag "Org Plain lists"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
539 :group 'org-structure)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
540
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
541 (defcustom org-cycle-include-plain-lists nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
542 "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
543 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
544 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
545 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
546 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
547 such an item."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
548 :group 'org-plain-lists
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
549 :type 'boolean)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
550
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
551 (defcustom org-plain-list-ordered-item-terminator t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
552 "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
553 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
554 ?. 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
555 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
556 the safe choice."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
557 :group 'org-plain-lists
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
558 :type '(choice (const :tag "dot like in \"2.\"" ?.)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
559 (const :tag "paren like in \"2)\"" ?\))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
560 (const :tab "both" t)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
561
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
562 (defcustom org-auto-renumber-ordered-lists t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
563 "Non-nil means, automatically renumber ordered plain lists.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
564 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
565 \\[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
566 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
567 :group 'org-plain-lists
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
568 :type 'boolean)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
569
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
570 (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
571 "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
572 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
573 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
574 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
575 :group 'org
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
576 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
577
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
578 (defgroup org-archive nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
579 "Options concerning archiving in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
580 :tag "Org Archive"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
581 :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
582
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
583 (defcustom org-archive-tag "ARCHIVE"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
584 "The tag that marks a subtree as archived.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
585 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
586 not contribute to the agenda listings."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
587 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
588 :group 'org-keywords
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
589 :type 'string)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
590
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
591 (defcustom org-agenda-skip-archived-trees t
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
592 "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
593 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
594 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
595 :group 'org-agenda-display
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
596 :type 'boolean)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
597
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
598 (defcustom org-cycle-open-archived-trees nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
599 "Non-nil means, `org-cycle' will open archived trees.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
600 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
601 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
602 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
603 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
604 :group 'org-cycle
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
605 :type 'boolean)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
606
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
607 (defcustom org-sparse-tree-open-archived-trees nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
608 "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
609 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
610 collapsed state."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
611 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
612 :group 'org-sparse-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
613 :type 'boolean)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
614
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
615 (defcustom org-archive-location "%s_archive::"
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
616 "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
617 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
618
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
619 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
620 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
621 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
622 contributing to the Org-mode Agenda.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
623
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
624 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
625 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
626 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
627
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
628 Here are a few examples:
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
629 \"%s_archive::\"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
630 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
631 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
632
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
633 \"::* Archived Tasks\"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
634 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
635 \"* Archived Tasks\".
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
636
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
637 \"~/org/archive.org::\"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
638 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
639
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
640 \"basement::** Finished Tasks\"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
641 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
642 below the level 2 heading \"** Finished Tasks\".
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
643
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
644 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
645 line like
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
646
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
647 #+ARCHIVE: basement::** Finished Tasks"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
648 :group 'org-archive
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
649 :type 'string)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
650
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
651 (defcustom org-archive-mark-done t
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
652 "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
653 :group 'org-archive
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
654 :type 'boolean)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
655
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
656 (defcustom org-archive-stamp-time t
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
657 "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
658 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
659 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
660 `org-archive-mark-done'."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
661 :group 'org-archive
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
662 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
663
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
664 (defgroup org-table nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
665 "Options concerning tables in Org-mode."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
666 :tag "Org Table"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
667 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
668
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
669 (defcustom org-enable-table-editor 'optimized
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
670 "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
671 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
672
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
673 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
674 do the following:
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
675 - 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
676 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
677 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
678 - 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
679 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
680 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
681 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
682 `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
683 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
684 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
685 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
686
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
687 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
688 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
689
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
690 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
691 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
692
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
693 See also the variable `org-table-auto-blank-field'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
694 :group 'org-table
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
695 :type '(choice
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
696 (const :tag "off" nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
697 (const :tag "on" t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
698 (const :tag "on, optimized" optimized)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
699
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
700 (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
701 "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
702 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
703 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
704 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
705 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
706 restored.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
707
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
708 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
709 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
710 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
711 :group 'org-table
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
712 :type 'boolean)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
713
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
714 (defgroup org-table-settings nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
715 "Settings for tables in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
716 :tag "Org Table Settings"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
717 :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
718
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
719 (defcustom org-table-default-size "5x2"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
720 "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
721 :group 'org-table-settings
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
722 :type 'string)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
723
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
724 (defcustom org-table-number-regexp
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
725 "^\\([<>]?[-+^.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
726 "Regular expression for recognizing numbers in table columns.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
727 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
728 right. If not, it will be aligned to the left.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
729
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
730 The default value of this option is a regular expression which allows
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
731 anything which looks remotely like a number as used in scientific
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
732 context. For example, all of the following will be considered a
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
733 number:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
734 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
735
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
736 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
737 :group 'org-table-settings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
738 :type '(choice
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
739 (const :tag "Positive Integers"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
740 "^[0-9]+$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
741 (const :tag "Integers"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
742 "^[-+]?[0-9]+$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
743 (const :tag "Floating Point Numbers"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
744 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.[0-9]*\\)$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
745 (const :tag "Floating Point Number or Integer"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
746 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
747 (const :tag "Exponential, Floating point, Integer"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
748 "^[-+]?[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
749 (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
750 "^\\([<>]?[-+^.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
751 (string :tag "Regexp:")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
752
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
753 (defcustom org-table-number-fraction 0.5
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
754 "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
755 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
756 fraction of fields is matched by `org-table-number-fraction',
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
757 alignment to the right border applies."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
758 :group 'org-table-settings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
759 :type 'number)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
760
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
761 (defgroup org-table-editing nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
762 "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
763 :tag "Org Table Editing"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
764 :group 'org-table)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
765
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
766 (defcustom org-table-automatic-realign t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
767 "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
768 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
769 removal/insertion."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
770 :group 'org-table-editing
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
771 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
772
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
773 (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
774 "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
775 :group 'org-table-editing
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
776 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
777
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
778 (defcustom org-table-auto-blank-field t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
779 "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
780 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
781 command (TAB, S-TAB or RET).
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
782 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
783 :group 'org-table-editing
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
784 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
785
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
786 (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
787 "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
788 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
789 `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
790 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
791 this line."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
792 :group 'org-table-editing
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
793 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
794
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
795 (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
796 "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
797 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
798 calls `table-recognize-table'."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
799 :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
800 :type 'boolean)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
801
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
802 (defgroup org-table-calculation nil
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
803 "Options concerning tables in Org-mode."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
804 :tag "Org Table Calculation"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
805 :group 'org-table)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
806
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
807 (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
808 "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
809 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
810 :type 'boolean)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
811
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
812 (defcustom org-calc-default-modes
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
813 '(calc-internal-prec 12
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
814 calc-float-format (float 5)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
815 calc-angle-mode deg
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
816 calc-prefer-frac nil
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
817 calc-symbolic-mode nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
818 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
819 calc-display-working-message t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
820 )
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
821 "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
822 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
823 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
824 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
825 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
826 :type 'plist)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
827
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
828 (defcustom org-table-formula-evaluate-inline t
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
829 "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
830 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
831 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
832 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
833 Emacs calc package.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
834 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
835 the command \\[org-table-eval-formula]."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
836 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
837 :type 'boolean)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
838
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
839
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
840 (defcustom org-table-formula-use-constants t
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
841 "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
842 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
843 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
844 from the `constants.el' package."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
845 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
846 :type 'boolean)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
847
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
848 (defcustom org-table-formula-constants nil
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
849 "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
850 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
851 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
852 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
853
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
854 (setq org-table-formula-constants '((\"c\" . \"299792458.\")))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
855
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
856 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
857 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
858 :type '(repeat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
859 (cons (string :tag "name")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
860 (string :tag "value"))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
861
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
862 (defcustom org-table-formula-numbers-only nil
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
863 "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
864 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
865 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
866 in table calculations, including symbolics etc."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
867 :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
868 :type 'boolean)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
869
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
870 (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
871 "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
872 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
873 :group 'org-table-calculation
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
874 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
875
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
876 (defgroup org-link nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
877 "Options concerning links in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
878 :tag "Org Link"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
879 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
880
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
881 (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
882 "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
883 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
884 (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
885
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
886 (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
887 "Alist of link abbreviations.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
888 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
889 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
890 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
891
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
892 [[linkkey::tag][description]]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
893
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
894 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
895 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
896 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
897 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
898 :group 'org-link
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
899 :type 'alist)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
900
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
901 (defcustom org-descriptive-links t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
902 "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
903 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
904 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
905 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
906 :group 'org-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
907 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
908
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
909 (defcustom org-link-style 'bracket
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
910 "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
911 Possible values are:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
912 bracket [[link][description]]. This is recommended
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
913 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
914 :group 'org-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
915 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
916 (const :tag "Bracket (recommended)" bracket)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
917 (const :tag "Plain (no longer recommended)" plain)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
918
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
919 (defcustom org-link-format "%s"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
920 "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
921 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
922 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
923 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
924 `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
925 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
926 :group 'org-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
927 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
928 (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
929 (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
930 (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
931 (string :tag "Other" :value "<%s>")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
932
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
933 (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
934 "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
935 Valid values are:
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
936
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
937 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
938 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
939 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
940 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
941 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
942 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
943 :group 'org-link
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
944 :type '(choice
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
945 (const relative)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
946 (const absolute)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
947 (const noabbrev)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
948 (const adaptive)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
949
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
950 (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
951 "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
952 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
953 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
954 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
955
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
956 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
957 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
958 <bbdb:Carsten Dominik>.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
959 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
960 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
961 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
962 date Time stamps (link to calendar).
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
963 camel CamelCase words defining text searches.
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 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
966 :group 'org-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
967 :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
968 (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
969 (const :tag "plain text links" plain)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
970 (const :tag "Radio target matches" radio)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
971 (const :tag "Tags" tag)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
972 (const :tag "Timestamps" date)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
973 (const :tag "CamelCase words" camel)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
974
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
975 (defgroup org-link-store nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
976 "Options concerning storing links in Org-mode"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
977 :tag "Org Store Link"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
978 :group 'org-link)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
979
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
980 (defcustom org-context-in-file-links t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
981 "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
982 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
983 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
984 `org-open-at-point'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
985 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
986 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
987 :group 'org-link-store
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
988 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
989
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
990 (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
991 "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
992 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
993 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
994 :group 'org-link-store
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
995 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
996
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
997 (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
998 "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
999
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1000 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
1001 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
1002 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
1003 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
1004 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
1005 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
1006 more efficient."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1007 :group 'org-link-store
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1008 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1009
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1010 (defcustom org-usenet-links-prefer-google nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1011 "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
1012 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
1013 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
1014 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
1015 :group 'org-link-store
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1016 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1017
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1018 (defgroup org-link-follow nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1019 "Options concerning following links in Org-mode"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1020 :tag "Org Follow Link"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1021 :group 'org-link)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1022
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1023 (defcustom org-tab-follows-link nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1024 "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
1025 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
1026 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1027 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1028
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1029 (defcustom org-return-follows-link nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1030 "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
1031 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
1032 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1033 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1034
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1035 (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
1036 "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
1037 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
1038 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
1039 :group 'org-link-follow
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1040 :type 'boolean)
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1041
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1042 (defcustom org-mark-ring-length 4
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1043 "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
1044 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
1045 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1046 :type 'interger)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1047
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1048 (defcustom org-link-frame-setup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1049 '((vm . vm-visit-folder-other-frame)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1050 (gnus . gnus-other-frame)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1051 (file . find-file-other-window))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1052 "Setup the frame configuration for following links.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1053 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
1054 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
1055 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
1056 For VM, use any of
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1057 `vm-visit-folder'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1058 `vm-visit-folder-other-frame'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1059 For Gnus, use any of
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1060 `gnus'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1061 `gnus-other-frame'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1062 For FILE, use any of
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1063 `find-file'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1064 `find-file-other-window'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1065 `find-file-other-frame'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1066 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
1067 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
1068 another window."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1069 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1070 :type '(list
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1071 (cons (const vm)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1072 (choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1073 (const vm-visit-folder)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1074 (const vm-visit-folder-other-window)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1075 (const vm-visit-folder-other-frame)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1076 (cons (const gnus)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1077 (choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1078 (const gnus)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1079 (const gnus-other-frame)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1080 (cons (const file)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1081 (choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1082 (const find-file)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1083 (const find-file-other-window)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1084 (const find-file-other-frame)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1085
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1086 (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
1087 "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
1088 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
1089 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
1090 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
1091 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
1092 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
1093 changes to the current buffer."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1094 :group 'org-link-follow
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1095 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1096
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1097
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1098 (defcustom org-open-non-existing-files nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1099 "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
1100 When nil, an error will be generated."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1101 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1102 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1103
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1104 (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
1105 "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
1106 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
1107 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
1108 %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
1109 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
1110 :group 'org-link-follow
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1111 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1112 (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
1113 (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
1114 (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
1115 (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
1116
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1117 (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
1118 "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
1119 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
1120
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1121 [[shell:rm -rf ~/*][Google Search]]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1122
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1123 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
1124 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
1125 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
1126 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
1127 rather than having to type \"yes\"."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1128 :group 'org-link-follow
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1129 :type '(choice
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1130 (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
1131 (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
1132 (const :tag "no confirmation (dangerous)" nil)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1133
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1134 (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
1135 "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
1136 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
1137
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1138 [[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
1139
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1140 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
1141 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
1142 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
1143 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
1144 rather than having to type \"yes\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1145 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1146 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1147 (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
1148 (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
1149 (const :tag "no confirmation (dangerous)" nil)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1150
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1151 (defconst org-file-apps-defaults-gnu
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1152 '((remote . emacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1153 (t . mailcap))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1154 "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
1155 See `org-file-apps'.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1156
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1157 (defconst org-file-apps-defaults-macosx
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1158 '((remote . emacs)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1159 (t . "open %s")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1160 ("ps" . "gv %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1161 ("ps.gz" . "gv %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1162 ("eps" . "gv %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1163 ("eps.gz" . "gv %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1164 ("dvi" . "xdvi %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1165 ("fig" . "xfig %s"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1166 "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
1167 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
1168 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
1169 See `org-file-apps'.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1170
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1171 (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
1172 (list
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1173 '(remote . emacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1174 (cons t
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1175 (list (if (featurep 'xemacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1176 'mswindows-shell-execute
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1177 'w32-shell-execute)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1178 "open" 'file)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1179 "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
1180 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
1181 See `org-file-apps'.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1182
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1183 (defcustom org-file-apps
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1184 '(
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1185 ("txt" . emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1186 ("tex" . emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1187 ("ltx" . emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1188 ("org" . emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1189 ("el" . emacs)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1190 ("bib" . emacs)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1191 )
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1192 "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
1193 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
1194 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
1195 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
1196 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
1197 file identifier are
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1198 \"ext\" A string identifying an extension
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1199 `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
1200 `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
1201 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
1202 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
1203 t Default for all remaining files
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1204
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1205 Possible values for the command are:
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1206 `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
1207 `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
1208 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
1209 by the path to the file.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1210 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
1211 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
1212 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
1213 `org-file-apps-defaults-macosx'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1214 `org-file-apps-defaults-windowsnt'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1215 `org-file-apps-defaults-gnu'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1216 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1217 :type '(repeat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1218 (cons (choice :value ""
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1219 (string :tag "Extension")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1220 (const :tag "Default for unrecognized files" t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1221 (const :tag "Remote file" remote)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1222 (const :tag "Links to a directory" directory))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1223 (choice :value ""
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1224 (const :tag "Visit with Emacs" emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1225 (const :tag "Use system default" default)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1226 (string :tag "Command")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1227 (sexp :tag "Lisp form")))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1228
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1229 (defcustom org-mhe-search-all-folders nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1230 "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
1231 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
1232 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
1233 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
1234 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1235 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1236
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1237 (defgroup org-remember nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1238 "Options concerning interaction with remember.el."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1239 :tag "Org Remember"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1240 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1241
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1242 (defcustom org-directory "~/org"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1243 "Directory with org files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1244 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
1245 Used by the hooks for remember.el."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1246 :group 'org-remember
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1247 :type 'directory)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1248
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1249 (defcustom org-default-notes-file "~/.notes"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1250 "Default target for storing notes.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1251 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
1252 the value of `remember-data-file'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1253 :group 'org-remember
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1254 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1255 (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
1256 file))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1257
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1258 (defcustom org-remember-templates nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1259 "Templates for the creation of remember buffers.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1260 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
1261 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
1262 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
1263 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
1264 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
1265 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
1266
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1267 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
1268 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
1269 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
1270 %t time stamp, date only
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1271 %T time stamp with date and time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1272 %u inactive time stamp, date only
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1273 %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
1274 %n user name
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1275 %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
1276 %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
1277 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
1278 %? 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
1279 :group 'org-remember
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1280 :type '(repeat :tag "enabled"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1281 (list :value (?a "\n" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1282 (character :tag "Selection Key")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1283 (string :tag "Template")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1284 (file :tag "Destination file (optional)"))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1285
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1286 (defcustom org-reverse-note-order nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1287 "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
1288 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
1289 :group 'org-remember
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1290 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1291 (const :tag "Reverse always" t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1292 (const :tag "Reverse never" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1293 (repeat :tag "By file name regexp"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1294 (cons regexp boolean))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1295
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1296 (defgroup org-todo nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1297 "Options concerning TODO items in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1298 :tag "Org TODO"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1299 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1300
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1301 (defcustom org-todo-keywords '("TODO" "DONE")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1302 "List of TODO entry keywords.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1303 \\<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
1304 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
1305 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
1306 etc.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1307 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
1308 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
1309 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
1310 Changes become only effective after restarting Emacs."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1311 :group 'org-todo
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1312 :group 'org-keywords
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1313 :type '(repeat (string :tag "Keyword")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1314
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1315 (defcustom org-todo-interpretation 'sequence
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1316 "Controls how TODO keywords are interpreted.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1317 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
1318 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
1319
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1320 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
1321 `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
1322 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
1323 switches directly to DONE from any state.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1324 See the manual for more information."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1325 :group 'org-todo
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1326 :group 'org-keywords
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1327 :type '(choice (const sequence)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1328 (const type)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1329
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1330 (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
1331 "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
1332 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
1333 Lisp variable `state'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1334 :group 'org-todo
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1335 :type 'hook)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1336
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1337 (defcustom org-log-done nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1338 "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
1339 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
1340 closing date.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1341
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1342 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
1343 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
1344 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
1345
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1346 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
1347 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
1348
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1349 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
1350 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
1351 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
1352 `org-log-note-headings'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1353
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1354 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
1355 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
1356
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1357 #+STARTUP: logging
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1358 #+STARTUP: nologging"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1359 ;; FIXME: in-buffer words for notes???????
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1360 :group 'org-todo
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1361 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1362 (const :tag "off" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1363 (const :tag "on" t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1364 (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
1365 (const done) (const clock-out))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1366
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1367 (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
1368 "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
1369 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
1370 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
1371 empty string."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1372 :group 'org-todo
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1373 :type '(list :greedy t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1374 (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
1375 (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
1376
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1377 (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
1378 "Priorities in Org-mode."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1379 :tag "Org Priorities"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1380 :group 'org-todo)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1381
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1382 (defcustom org-default-priority ?B
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1383 "The default priority of TODO items.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1384 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
1385 :group 'org-priorities
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1386 :type 'character)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1387
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1388 (defcustom org-lowest-priority ?C
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1389 "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
1390 :group 'org-priorities
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1391 :type 'character)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1392
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1393 (defgroup org-time nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1394 "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
1395 :tag "Org Time"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1396 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1397
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1398 (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
1399 "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
1400 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
1401 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
1402 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
1403 :group 'org-time
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1404 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1405
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1406 (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
1407 "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
1408 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
1409
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1410 (defcustom org-time-stamp-rounding-minutes 0
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1411 "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
1412 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
1413 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
1414 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
1415 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
1416 :group 'org-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1417 :type 'integer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1418
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1419 (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
1420 "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
1421 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
1422 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
1423 #+STARTUP: customtime"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1424 :group 'org-time
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1425 :set 'set-default
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1426 :type 'sexp)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1427 (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
1428
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1429 (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
1430 '("<%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
1431 "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
1432 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
1433 `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
1434 :group 'org-time
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1435 :type 'sexp)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1436
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1437 (defcustom org-deadline-warning-days 30
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1438 "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
1439 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
1440 :group 'org-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1441 :type 'number)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1442
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1443 (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
1444 "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
1445 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
1446 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
1447 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
1448 :group 'org-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1449 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1450
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1451 (defcustom org-calendar-follow-timestamp-change t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1452 "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
1453 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
1454 moved to the new date."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1455 :group 'org-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1456 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1457
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1458 (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
1459 "Options concerning tags in Org-mode."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1460 :tag "Org Tags"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1461 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1462
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1463 (defcustom org-tag-alist nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1464 "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
1465 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
1466 buffer.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1467 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
1468 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
1469 interface. See the manual for details."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1470 :group 'org-tags
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1471 :type '(repeat
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
1472 (choice
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
1473 (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
1474 (character :tag "Access char"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
1475 (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
1476 (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
1477
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1478 (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
1479 "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
1480 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
1481 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
1482 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
1483 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
1484 `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
1485 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
1486 automatically if necessary."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1487 :group 'org-tags
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1488 :type '(choice
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1489 (const :tag "Always" t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1490 (const :tag "Never" nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1491 (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
1492
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1493 (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
1494 "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
1495 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
1496 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
1497 :group 'org-tags
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1498 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1499
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1500 (defcustom org-tags-column 48
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1501 "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
1502 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
1503 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
1504 -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
1505 :group 'org-tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1506 :type 'integer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1507
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1508 (defcustom org-auto-align-tags t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1509 "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
1510 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
1511 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
1512 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
1513 :group 'org-tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1514 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1515
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1516 (defcustom org-use-tag-inheritance t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1517 "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
1518 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
1519 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
1520 companion option `org-tags-match-list-sublevels'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1521 :group 'org-tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1522 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1523
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1524 (defcustom org-tags-match-list-sublevels nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1525 "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
1526 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
1527 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
1528 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
1529 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
1530 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
1531 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
1532
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1533 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
1534 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
1535 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
1536 :group 'org-tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1537 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1538
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1539 (defvar org-tags-history nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1540 "History of minibuffer reads for tags.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1541 (defvar org-last-tags-completion-table nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1542 "The last used completion table for tags.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1543
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1544 (defgroup org-agenda nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1545 "Options concerning agenda display Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1546 :tag "Org Agenda"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1547 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1548
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1549 (defvar org-category nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1550 "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
1551 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
1552
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1553 -*- mode: org; org-category: \"ELisp\"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1554
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1555 or contain a special line
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1556
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1557 #+CATEGORY: ELisp
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1558
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1559 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
1560 is used instead.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1561 (make-variable-buffer-local 'org-category)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1562
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1563 (defcustom org-agenda-files nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1564 "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
1565 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
1566 \\[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
1567
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1568 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
1569 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
1570 agenda file per line."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1571 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1572 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1573 (repeat :tag "List of files" file)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1574 (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
1575
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1576 (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
1577 '(("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
1578 "Custom commands for the agenda.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1579 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
1580 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
1581
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1582 (key type match options)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1583
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1584 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
1585 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
1586 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
1587 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
1588 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
1589 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
1590 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
1591 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
1592 match What to search for:
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1593 - 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
1594 - 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
1595 - 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
1596 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
1597 this: ((opt1 val1) (opt2 val2) ...)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1598
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1599 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
1600 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
1601
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1602 (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
1603
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1604 where
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1605
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1606 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
1607 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
1608 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
1609 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
1610 (agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1611 (alltodo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1612 (todo \"match\" options)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1613 (tags \"match\" options )
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1614 (tags-todo \"match\" options)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1615
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1616 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
1617 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
1618 precedence over the general options."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1619 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1620 :type '(repeat
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1621 (choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1622 (list :tag "Single command"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1623 (string :tag "Key")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1624 (choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1625 (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
1626 (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
1627 (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
1628 (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
1629 (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
1630 (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
1631 (string :tag "Match")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1632 (repeat :tag "Local options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1633 (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
1634 (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
1635 (string :tag "Key")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1636 (string :tag "Description")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1637 (repeat
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1638 (choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1639 (const :tag "Agenda" (agenda))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1640 (const :tag "TODO list" (alltodo))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1641 (list :tag "Tags search"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1642 (const :format "" tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1643 (string :tag "Match")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1644 (repeat :tag "Local options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1645 (list (variable :tag "Option")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1646 (sexp :tag "Value"))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1647
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1648 (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
1649 (const :format "" tags-todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1650 (string :tag "Match")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1651 (repeat :tag "Local options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1652 (list (variable :tag "Option")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1653 (sexp :tag "Value"))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1654
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1655 (list :tag "TODO keyword search"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1656 (const :format "" todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1657 (string :tag "Match")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1658 (repeat :tag "Local options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1659 (list (variable :tag "Option")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1660 (sexp :tag "Value"))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1661 (repeat :tag "General options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1662 (list (variable :tag "Option")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1663 (sexp :tag "Value")))))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1664
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1665 (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
1666 "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
1667 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
1668 potentially much shorter TODO lists."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1669 :group 'org-agenda
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1670 :group 'org-todo
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1671 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1672
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1673 (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
1674 "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
1675 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
1676 of this item."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1677 :group 'org-agenda
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1678 :group 'org-todo
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1679 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1680
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1681 (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
1682 "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
1683 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
1684 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
1685 :group 'org-agenda
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1686 :group 'org-todo
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1687 :type 'boolean)
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
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1690 (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
1691 "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
1692 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
1693 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
1694 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
1695 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
1696 :group 'org-agenda
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1697 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1698 (const :tag "None" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1699 (const :tag "All" t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1700 (number :tag "at most")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1701
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1702 (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
1703 "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
1704 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
1705 the entries for specific days."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1706 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1707 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1708
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1709 (defcustom org-agenda-include-diary nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1710 "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
1711 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1712 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1713
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1714 (defcustom org-calendar-to-agenda-key [?c]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1715 "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
1716 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
1717 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
1718 forth between agenda and calendar."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1719 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1720 :type 'sexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1721
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1722 (defgroup org-agenda-setup nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1723 "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
1724 :tag "Org Agenda Window Setup"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1725 :group 'org-agenda)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1726
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1727 (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
1728 "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
1729 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
1730
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1731 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
1732 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
1733 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
1734 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
1735 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
1736 `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
1737 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
1738 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
1739 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1740 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1741 (const current-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1742 (const other-frame)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1743 (const other-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1744 (const reorganize-frame)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1745
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1746 (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
1747 "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
1748 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
1749 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
1750 `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
1751 `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
1752 option will be ignored.."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1753 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1754 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1755
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1756 ;; 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
1757 (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
1758 "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
1759 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
1760 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1761 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1762
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1763 ;; 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
1764 (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
1765 "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
1766 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
1767 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1768 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1769
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1770 (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
1771 "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
1772 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1773 :type 'hook)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1774
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1775 (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
1776 "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
1777 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
1778 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
1779 :group 'org-agenda-setup
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1780 :type 'boolean)
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1781
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1782 (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
1783 "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
1784 :group 'org-agenda-setup
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1785 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1786
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1787 (defgroup org-agenda-display nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1788 "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
1789 :tag "Org Agenda Display"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1790 :group 'org-agenda)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1791
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1792 (defcustom org-agenda-show-all-dates t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1793 "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
1794 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
1795 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1796 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1797
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1798 (defcustom org-agenda-start-on-weekday 1
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1799 "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
1800 0 denotes Sunday, 1 denotes Monday etc.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1801 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
1802 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1803 :type '(choice (const :tag "Today" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1804 (number :tag "Weekday No.")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1805
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1806 (defcustom org-agenda-ndays 7
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1807 "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
1808 Should be 1 or 7."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1809 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1810 :type 'number)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1811
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1812 (defcustom org-agenda-use-time-grid t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1813 "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
1814 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
1815 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
1816 sorted in between these lines.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1817 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
1818 the variable `org-agenda-time-grid'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1819 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1820 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1821
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1822 (defcustom org-agenda-time-grid
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1823 '((daily today require-timed)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1824 "----------------"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1825 (800 1000 1200 1400 1600 1800 2000))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1826
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1827 "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
1828 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
1829 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
1830
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1831 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
1832 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
1833 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
1834 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
1835
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1836 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
1837
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1838 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
1839 a grid line."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1840 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1841 :type
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1842 '(list
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1843 (set :greedy t :tag "Grid Display Options"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1844 (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
1845 (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
1846 (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
1847 (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
1848 require-timed)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1849 (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
1850 remove-match))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1851 (string :tag "Grid String")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1852 (repeat :tag "Grid Times" (integer :tag "Time"))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1853
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1854 (let ((sorting-choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1855 '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1856 (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
1857 (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
1858 (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
1859 (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
1860
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1861 (defcustom org-agenda-sorting-strategy
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1862 '((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
1863 (todo category-keep priority-down)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1864 (tags category-keep))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1865 "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
1866 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
1867 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
1868 symbols are recognized:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1869
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1870 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
1871 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
1872 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
1873 sequence in `org-agenda-files'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1874 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
1875 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
1876 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
1877 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
1878 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
1879 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
1880
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1881 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
1882 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
1883 '(time-up category-keep priority-down)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1884 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
1885 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
1886 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
1887 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
1888 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
1889 priority.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1890
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1891 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
1892 categories by priority."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1893 :group 'org-agenda-display
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1894 :type `(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1895 (repeat :tag "General" ,sorting-choice)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1896 (list :tag "Individually"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1897 (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
1898 (repeat ,sorting-choice))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1899 (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
1900 (repeat ,sorting-choice))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1901 (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
1902 (repeat ,sorting-choice))))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1903
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1904 (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
1905 "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
1906 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
1907 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
1908 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
1909 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
1910 agenda entries."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1911 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1912 :type 'boolean)
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 (defgroup org-agenda-prefix nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1915 "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
1916 :tag "Org Agenda Prefix"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1917 :group 'org-agenda)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1918
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1919 (defcustom org-agenda-prefix-format
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1920 '((agenda . " %-12:c%?-12t% s")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1921 (timeline . " % s")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1922 (todo . " %-12:c")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1923 (tags . " %-12:c"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1924 "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
1925 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
1926 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
1927 are format strings.
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1928 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
1929
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1930 %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
1931 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
1932 %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
1933 first in the list.
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1934 %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
1935 format HH:MM
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1936 %s Scheduling/Deadline information, a short string
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1937
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1938 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
1939 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
1940 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
1941
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1942 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
1943 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
1944 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
1945 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
1946 \"%?-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
1947 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
1948 not contain a time.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1949
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1950 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
1951 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
1952 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
1953 \"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
1954 empty, no additional colon would be interted.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1955
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1956 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
1957 - Indent the line with two space characters
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1958 - 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
1959 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
1960 (because of `:').
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1961 - 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
1962 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
1963 - 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
1964
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1965 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
1966 the prefix, you could use:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1967
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1968 (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
1969
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1970 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
1971 `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
1972 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1973 (string :tag "General format")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1974 (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
1975 (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
1976 (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
1977 (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
1978 (cons (const tags) (string :tag "Format"))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1979 :group 'org-agenda-prefix)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1980
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1981 (defvar org-prefix-format-compiled nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1982 "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
1983 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
1984
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1985 (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
1986 "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
1987 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
1988 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
1989 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
1990 \(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
1991 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
1992 cluttered.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1993 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
1994 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
1995 the headline/diary entry."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1996 :group 'org-agenda-prefix
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1997 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1998 (const :tag "Always" t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1999 (const :tag "Never" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2000 (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
2001
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2002 (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
2003 "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
2004 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
2005 `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
2006 :group 'org-agenda-prefix
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2007 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2008 (const :tag "Always" t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2009 (const :tag "Never" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2010 (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
2011
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2012 (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
2013 "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
2014 :group 'org-agenda-prefix
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2015 :type 'integer)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2016
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2017 (defgroup org-latex nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2018 "Options for embedding LaTeX code into Org-mode"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2019 :tag "Org LaTeX"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2020 :group 'org)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2021
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2022 (defcustom org-format-latex-options
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2023 '(:foreground "Black" :background "Transparent" :scale 1.0
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2024 :matchers ("begin" "$" "$$" "\\(" "\\["))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2025 "Options for creating images from LaTeX fragments.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2026 This is a property list with the following properties:
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2027 :foreground the foreground color, for example \"Black\".
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2028 :background the background color, or \"Transparent\".
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2029 :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
2030 :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
2031 find LaTeX fragments. Valid members of this list are:
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2032 \"begin\" find environments
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
2033 \"$\" find math expressions surrounded by $...$
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2034 \"$$\" find math expressions surrounded by $$....$$
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
2035 \"\\(\" find math expressions surrounded by \\(...\\)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
2036 \"\\ [\" find math expressions surrounded by \\ [...\\]"
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2037 :group 'org-latex
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2038 :type 'plist)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2039
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2040 (defgroup org-export nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2041 "Options for exporting org-listings."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2042 :tag "Org Export"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2043 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2044
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2045 (defgroup org-export-general nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2046 "General options for exporting Org-mode files."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2047 :tag "Org Export General"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2048 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2049
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2050 (defcustom org-export-publishing-directory "."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2051 "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
2052 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
2053 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
2054 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
2055 `: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
2056 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
2057 Org-mode files lives."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2058 :group 'org-export-general
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2059 :type '(choice
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2060 (directory)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2061 (repeat
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2062 (cons
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2063 (choice :tag "Type"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2064 (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
2065 (directory)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2066
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2067 (defcustom org-export-language-setup
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2068 '(("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
2069 ("cs" "Autor" "Datum" "Obsah")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2070 ("da" "Ophavsmand" "Dato" "Indhold")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2071 ("de" "Autor" "Datum" "Inhaltsverzeichnis")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2072 ("es" "Autor" "Fecha" "\xccndice")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2073 ("fr" "Auteur" "Date" "Table des Mati\xe8res")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2074 ("it" "Autore" "Data" "Indice")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2075 ("nl" "Auteur" "Datum" "Inhoudsopgave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2076 ("nn" "Forfattar" "Dato" "Innhold") ;; nn = Norsk (nynorsk)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2077 ("sv" "F\xf6rfattarens" "Datum" "Inneh\xe5ll"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2078 "Terms used in export text, translated to different languages.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2079 Use the variable `org-export-default-language' to set the language,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2080 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
2081 :group 'org-export-general
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2082 :type '(repeat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2083 (list
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2084 (string :tag "HTML language tag")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2085 (string :tag "Author")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2086 (string :tag "Date")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2087 (string :tag "Table of Contents"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2088
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2089 (defcustom org-export-default-language "en"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2090 "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
2091 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
2092 :group 'org-export-general
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2093 :type 'string)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2094
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2095 (defcustom org-export-headline-levels 3
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2096 "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
2097 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
2098 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
2099 this setting.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2100
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2101 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
2102 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2103 :type 'number)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2104
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2105 (defcustom org-export-with-section-numbers t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2106 "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
2107
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2108 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
2109 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2110 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2111
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2112 (defcustom org-export-with-toc t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2113 "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
2114 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
2115
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2116 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
2117 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
2118
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2119 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
2120
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2121 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
2122 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2123 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2124
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2125 (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
2126 "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
2127 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2128 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2129
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2130 (defcustom org-export-preserve-breaks nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2131 "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
2132 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
2133 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
2134
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2135 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
2136 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2137 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2138
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2139 (defcustom org-export-with-archived-trees 'headline
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2140 "Whether subtrees with the ARCHIVE tag should be exported.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2141 This can have three different values
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2142 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
2143 t Do export the entire tree
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2144 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
2145 :group 'org-export-general
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2146 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2147 :type '(choice
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2148 (const :tag "not at all" nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2149 (const :tag "headline only" 'headline)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2150 (const :tag "entirely" t)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2151
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2152 (defcustom org-export-with-timestamps t
73916
faaa0f903f20 (org-export-with-timestamps)
Glenn Morris <rgm@gnu.org>
parents: 73885
diff changeset
2153 "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
2154 :group 'org-export-general
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2155 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2156
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
2157 (defcustom org-export-remove-timestamps-from-toc t
73916
faaa0f903f20 (org-export-with-timestamps)
Glenn Morris <rgm@gnu.org>
parents: 73885
diff changeset
2158 "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
2159 :group 'org-export-general
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2160 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2161
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2162 (defcustom org-export-with-tags 'not-in-toc
73916
faaa0f903f20 (org-export-with-timestamps)
Glenn Morris <rgm@gnu.org>
parents: 73885
diff changeset
2163 "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
2164 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
2165 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
2166 :group 'org-export-general
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2167 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2168 (const :tag "Off" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2169 (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
2170 (const :tag "On" t)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2171
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2172 (defgroup org-export-translation nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2173 "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
2174 :tag "Org Export Translation"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2175 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2176
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2177 (defcustom org-export-with-emphasize t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2178 "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
2179 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
2180 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
2181 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
2182 Not all export backends support this.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2183
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2184 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
2185 :group 'org-export-translation
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2186 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2187
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2188 (defcustom org-export-with-sub-superscripts t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2189 "Non-nil means, interpret \"_\" and \"^\" for export.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2190 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
2191 superscripts. Several characters after \"_\" or \"^\" will be
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2192 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
2193 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
2194 sub- or superscripts.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2195
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2196 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
2197 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
2198 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
2199 terminated by almost any nonword/nondigit char.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2200 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
2201
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2202 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
2203 sub/superscript.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2204 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
2205
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2206 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
2207 :group 'org-export-translation
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2208 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2209
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2210 (defcustom org-export-with-TeX-macros t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2211 "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
2212 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
2213 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
2214 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
2215 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
2216 Not all export backends support this.
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 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
2219 :group 'org-export-translation
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2220 :group 'org-latex
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2221 :type 'boolean)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2222
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2223 (defcustom org-export-with-LaTeX-fragments nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2224 "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
2225 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
2226 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
2227 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
2228 display math.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2229
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2230 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
2231 :group 'org-export-translation
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2232 :group 'org-latex
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2233 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2234
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2235 (defcustom org-export-with-fixed-width t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2236 "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
2237 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
2238 example:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2239 : ;; Some Lisp examples
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2240 : (while (defc cnt)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2241 : (ding))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2242 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
2243 Not all export backends support this.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2244
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2245 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
2246 :group 'org-export-translation
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2247 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2248
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2249 (defcustom org-match-sexp-depth 3
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2250 "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
2251 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
2252 :group 'org-export-translation
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2253 :type 'integer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2254
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2255 (defgroup org-export-tables nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2256 "Options for exporting tables in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2257 :tag "Org Export Tables"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2258 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2259
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2260 (defcustom org-export-with-tables t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2261 "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
2262 For example:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2263
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2264 | Name | Address | Birthday |
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2265 |-------------+----------+-----------|
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2266 | Arthur Dent | England | 29.2.2100 |
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2267
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2268 Not all export backends support this.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2269
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2270 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
2271 :group 'org-export-tables
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2272 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2273
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2274 (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
2275 "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
2276 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
2277 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
2278 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
2279 line will be formatted with <th> tags."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2280 :group 'org-export-tables
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2281 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2282
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2283 (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
2284 "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
2285 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
2286 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
2287 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
2288 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
2289 :group 'org-export-tables
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2290 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2291
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2292 (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
2293 "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
2294 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
2295 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
2296 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
2297 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
2298 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
2299 much faster."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2300 :group 'org-export-tables
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2301 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2302
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2303 (defgroup org-export-ascii nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2304 "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
2305 :tag "Org Export ASCII"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2306 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2307
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2308 (defcustom org-export-ascii-underline '(?\$ ?\# ?^ ?\~ ?\= ?\-)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2309 "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
2310 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
2311 :group 'org-export-ascii
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2312 :type '(repeat character))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2313
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
2314 (defcustom org-export-ascii-bullets '(?* ?+ ?-)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2315 "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
2316 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
2317 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
2318 the list will be repeated.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2319 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
2320 Org-mode file."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2321 :group 'org-export-ascii
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2322 :type '(repeat character))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2323
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2324 (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
2325 "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
2326 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
2327 :group 'org-export-ascii
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2328 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2329
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2330 (defgroup org-export-xml nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2331 "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
2332 :tag "Org Export XML"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2333 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2334
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2335 (defgroup org-export-html nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2336 "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
2337 :tag "Org Export HTML"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2338 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2339
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
2340 (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
2341 "<style type=\"text/css\">
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2342 html {
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2343 font-family: Times, serif;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2344 font-size: 12pt;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2345 }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2346 .title { text-align: center; }
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2347 .todo { color: red; }
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2348 .done { color: green; }
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2349 .timestamp { color: grey }
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2350 .timestamp-kwd { color: CadetBlue }
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2351 .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
2352 .target { background-color: lavender; }
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2353 pre {
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2354 border: 1pt solid #AEBDCC;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2355 background-color: #F3F5F7;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2356 padding: 5pt;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2357 font-family: courier, monospace;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2358 }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2359 table { border-collapse: collapse; }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2360 td, th {
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2361 vertical-align: top;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2362 border: 1pt solid #ADB9CC;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2363 }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2364 </style>"
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2365 "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
2366 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
2367 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
2368 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
2369 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
2370 would be:
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2371
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2372 <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
2373 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
2374 h1 { color: black; }
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2375 .title { text-align: center; }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2376 .todo, .deadline { color: red; }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2377 .done { color: green; }
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2378 </style>
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2379
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2380 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
2381
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2382 <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
2383
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2384 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
2385 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
2386 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2387 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2388
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2389 (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
2390 "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
2391 :group 'org-export-html
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2392 :type 'string)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2393
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2394 (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
2395 "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
2396 :group 'org-export-html
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2397 :type 'string)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2398
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2399 (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
2400 "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
2401 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
2402 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
2403 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
2404 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
2405 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
2406 converted to HTML.
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2407 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
2408 :group 'org-export-html
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2409 :type 'boolean)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2410
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2411 (defcustom org-export-html-inline-images 'maybe
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2412 "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
2413 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
2414 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
2415 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
2416 be linked only."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2417 :group 'org-export-html
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2418 :type '(choice (const :tag "Never" nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2419 (const :tag "Always" t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2420 (const :tag "When there is no description" maybe)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2421
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2422 (defcustom org-export-html-expand t
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2423 "Non-nil means, for HTML export, treat @<...> as HTML tag.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2424 When nil, these tags will be exported as plain text and therefore
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2425 not be interpreted by a browser.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2426
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2427 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
2428 :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
2429 :type 'boolean)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
2430
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2431 (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
2432 "<table border=\"1\" cellspacing=\"0\" cellpadding=\"6\">"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2433 "The HTML tag used to start a table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2434 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
2435 borders and spacing."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2436 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2437 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2438
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2439 (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
2440 "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
2441 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
2442 to a file."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2443 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2444 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2445
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2446 (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
2447 "<br/><br/><hr><p><!-- hhmts start --> <!-- hhmts end --></p>\n"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2448 "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
2449 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2450 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2451
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2452 (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
2453 "Non-nil means, popup buffer containing the exported html text.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2454 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
2455 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2456 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2457
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2458 (defgroup org-export-icalendar nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2459 "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
2460 :tag "Org Export iCalendar"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2461 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2462
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2463 (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
2464 "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
2465 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
2466 The file name should be absolute."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2467 :group 'org-export-icalendar
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2468 :type 'file)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2469
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2470 (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
2471 "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
2472 :group 'org-export-icalendar
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2473 :type 'boolean)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2474
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2475 (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
2476 "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
2477 :group 'org-export-icalendar
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2478 :type 'string)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2479
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2480 (defgroup org-font-lock nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2481 "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
2482 :tag "Org Font Lock"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2483 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2484
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2485 (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
2486 "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
2487 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
2488 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
2489 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
2490 :group 'org-font-lock
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2491 :type 'boolean)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2492
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2493 (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
2494 "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
2495 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
2496 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
2497 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
2498 make this work.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2499 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
2500 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
2501 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
2502 lines to the buffer:
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2503
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2504 #+STARTUP: hidestars
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2505 #+STARTUP: showstars"
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2506 :group 'org-font-lock
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2507 :type 'boolean)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2508
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2509 (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
2510 "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
2511 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
2512 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
2513 `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
2514 :group 'org-font-lock
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2515 :type 'boolean)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2516
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2517 (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
2518 "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
2519 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
2520 :group 'org-font-lock
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2521 :type 'boolean)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2522
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2523 (defvar org-emph-re nil
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2524 "Regular expression for matching emphasis.")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2525 (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
2526 (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
2527 (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
2528 "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
2529 (set var val)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2530 (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
2531 (boundp 'org-emphasis-regexp-components)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2532 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
2533 (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
2534 (pre (car e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2535 (post (nth 1 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2536 (border (nth 2 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2537 (body (nth 3 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2538 (nl (nth 4 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2539 (stacked (nth 5 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2540 (body1 (concat body "*?"))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2541 (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
2542 ;; 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
2543 (if (string-match "\\^" markers)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2544 (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
2545 (if (string-match "-" markers)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2546 (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
2547 ; (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
2548 ; (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
2549 (if (> nl 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2550 (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
2551 (int-to-string nl) "\\}")))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2552 ;; Make the regexp
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2553 (setq org-emph-re
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2554 (concat "\\([" pre (if stacked markers) "]\\|^\\)"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2555 "\\("
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2556 "\\([" markers "]\\)"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2557 "\\("
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2558 "[^" border markers "]"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2559 body1
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2560 "[^" border markers "]"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2561 "\\)"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2562 "\\3\\)"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2563 "\\([" post (if stacked markers) "]\\|$\\)")))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2564
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2565 (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
2566 '(" \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
2567 "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
2568 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
2569 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
2570 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
2571 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
2572 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
2573
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2574 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
2575 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
2576 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
2577 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
2578 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
2579 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
2580 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
2581 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
2582 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
2583 `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
2584 inside-out matching.
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
2585 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
2586 :group 'org-font-lock
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2587 :set 'org-set-emph-re
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2588 :type '(list
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2589 (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
2590 (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
2591 (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
2592 (sexp :tag "Regexp for body ")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2593 (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
2594 (boolean :tag "Stacking allowed ")))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2595
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2596 (defcustom org-emphasis-alist
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2597 '(("*" bold "<b>" "</b>")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2598 ("/" italic "<i>" "</i>")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2599 ("_" underline "<u>" "</u>")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2600 ("=" shadow "<code>" "</code>")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2601 ("+" (:strike-through t) "<del>" "</del>")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2602 )
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
2603 "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
2604 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
2605 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
2606 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
2607 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
2608 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
2609 :group 'org-font-lock
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2610 :set 'org-set-emph-re
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2611 :type '(repeat
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2612 (list
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2613 (string :tag "Marker character")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2614 (choice
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2615 (face :tag "Font-lock-face")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2616 (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
2617 (string :tag "HTML start tag")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2618 (string :tag "HTML end tag"))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2619
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2620 (defgroup org-faces nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2621 "Faces in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2622 :tag "Org Faces"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2623 :group 'org-font-lock)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2624
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2625 (defun org-compatible-face (specs)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2626 "Make a compatible face specification.
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2627 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
2628 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
2629 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
2630 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
2631 (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
2632 (let (r e a)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2633 (while (setq e (pop specs))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2634 (cond
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2635 ((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
2636 ((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
2637 (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
2638 (cdr e)))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2639 ((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
2640 (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
2641 (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
2642 (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
2643 (nreverse r))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2644 specs))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2645
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
2646 (defface org-hide
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2647 '((((background light)) (:foreground "white"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2648 (((background dark)) (:foreground "black")))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2649 "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
2650 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
2651 color of the frame."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2652 :group 'org-faces)
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
2653
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2654 (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
2655 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2656 '((((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
2657 (((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
2658 (((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
2659 (((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
2660 (((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
2661 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2662 "Face used for level 1 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-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
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 "DarkGoldenrod"))
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 "LightGoldenrod"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2669 (((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
2670 (((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
2671 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2672 "Face used for level 2 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2673 :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
2674
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2675 (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
2676 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2677 '((((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
2678 (((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
2679 (((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
2680 (((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
2681 (((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
2682 (((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
2683 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2684 "Face used for level 3 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2685 :group 'org-faces)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
2686
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
2687 (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
2688 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2689 '((((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
2690 (((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
2691 (((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
2692 (((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
2693 (((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
2694 (((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
2695 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2696 "Face used for level 4 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2697 :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
2698
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2699 (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
2700 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2701 '((((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
2702 (((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
2703 (((class color) (min-colors 8)) (:foreground "green"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2704 "Face used for level 5 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2705 :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
2706
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-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
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 "CadetBlue"))
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 "Aquamarine"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2711 (((class color) (min-colors 8)) (:foreground "magenta"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2712 "Face used for level 6 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2713 :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
2714
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2715 (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
2716 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2717 '((((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
2718 (((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
2719 (((class color) (min-colors 8)) (:foreground "blue"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2720 "Face used for level 7 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2721 :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
2722
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2723 (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
2724 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2725 '((((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
2726 (((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
2727 (((class color) (min-colors 8)) (:foreground "green"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2728 "Face used for level 8 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2729 :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
2730
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
2731 (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
2732 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2733 '((((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
2734 (((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
2735 (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
2736 "Face used for special keywords."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2737 :group 'org-faces)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
2738
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2739 (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
2740 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2741 '((((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
2742 (((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
2743 (((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
2744 (((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
2745 (t (:bold t))))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
2746 "Face for deadlines and TODO keywords."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2747 :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
2748
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2749 (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
2750 (org-compatible-face
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 light)) (:foreground "RosyBrown"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2752 (((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
2753 (((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
2754 "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
2755 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
2756 :group 'org-faces)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
2757
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2758 (defface org-archived ; similar to shadow
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2759 (org-compatible-face
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2760 '((((class color grayscale) (min-colors 88) (background light))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2761 (:foreground "grey50"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2762 (((class color grayscale) (min-colors 88) (background dark))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2763 (:foreground "grey70"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2764 (((class color) (min-colors 8) (background light))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2765 (:foreground "green"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2766 (((class color) (min-colors 8) (background dark))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2767 (:foreground "yellow"))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2768 "Face for headline with the ARCHIVE tag."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2769 :group 'org-faces)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2770
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
2771 (defface org-link
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2772 '((((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
2773 (((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
2774 (t (:underline t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2775 "Face for links."
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
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2778 (defface org-date
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2779 '((((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
2780 (((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
2781 (t (:underline t)))
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2782 "Face for links."
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2783 :group 'org-faces)
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2784
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
2785 (defface org-tag
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2786 '((t (:bold t)))
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2787 "Face for tags."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2788 :group 'org-faces)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
2789
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2790 (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
2791 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2792 '((((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
2793 (((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
2794 (((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
2795 (((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
2796 (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
2797 "Face for TODO keywords."
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2798 :group 'org-faces)
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2799
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2800 (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
2801 (org-compatible-face
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2802 '((((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
2803 (((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
2804 (((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
2805 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2806 "Face used for DONE."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2807 :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
2808
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2809 (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
2810 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2811 '((((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
2812 (((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
2813 (((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
2814 (((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
2815 (((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
2816 (((class color) (min-colors 8) (background dark)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2817 "Face used for tables."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2818 :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
2819
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2820 (defface org-formula
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2821 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2822 '((((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
2823 (((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
2824 (((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
2825 (((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
2826 (t (:bold t :italic t))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2827 "Face for formulas."
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2828 :group 'org-faces)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2829
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2830 (defface org-scheduled-today
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2831 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2832 '((((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
2833 (((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
2834 (((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
2835 (t (:bold t :italic t))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2836 "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
2837 :group 'org-faces)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2838
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2839 (defface org-scheduled-previously
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2840 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2841 '((((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
2842 (((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
2843 (((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
2844 (((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
2845 (t (:bold t))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2846 "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
2847 :group 'org-faces)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2848
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2849 (defface org-upcoming-deadline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2850 (org-compatible-face
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2851 '((((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
2852 (((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
2853 (((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
2854 (((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
2855 (t (:bold t))))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2856 "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
2857 :group 'org-faces)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2858
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2859 (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
2860 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2861 '((((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
2862 (((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
2863 (((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
2864 "Face used for time grids."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2865 :group 'org-faces)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
2866
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2867 (defconst org-level-faces
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
2868 '(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
2869 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
2870 ))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2871 (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
2872
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2873
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2874 ;; 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
2875 (defvar org-done-string nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2876 "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
2877 (make-variable-buffer-local 'org-done-string)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2878 (defvar org-todo-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2879 "Matches any of the TODO state keywords.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2880 (make-variable-buffer-local 'org-todo-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2881 (defvar org-not-done-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2882 "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
2883 (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
2884 (defvar org-todo-line-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2885 "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
2886 (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
2887 (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
2888 "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
2889 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
2890 (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
2891 (defvar org-nl-done-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2892 "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
2893 (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
2894 (defvar org-looking-at-done-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2895 "Matches the DONE keyword a point.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2896 (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
2897 (defvar org-todo-kwd-priority-p nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2898 "Do TODO items have priorities?")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2899 (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
2900 (defvar org-todo-kwd-max-priority nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2901 "Maximum priority of TODO items.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2902 (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
2903 (defvar org-ds-keyword-length 12
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2904 "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
2905 (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
2906 (defvar org-deadline-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2907 "Matches the DEADLINE keyword.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2908 (make-variable-buffer-local 'org-deadline-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2909 (defvar org-deadline-time-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2910 "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
2911 (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
2912 (defvar org-deadline-line-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2913 "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
2914 (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
2915 (defvar org-scheduled-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2916 "Matches the SCHEDULED keyword.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2917 (make-variable-buffer-local 'org-scheduled-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2918 (defvar org-scheduled-time-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2919 "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
2920 (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
2921 (defvar org-closed-time-regexp nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2922 "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
2923 (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
2924
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2925 (defvar org-keyword-time-regexp nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2926 "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
2927 (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
2928 (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
2929 "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
2930 (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
2931
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2932 (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
2933 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
2934 "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
2935
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2936 (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
2937 (if (featurep 'xemacs)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2938 (let ((s (match-string num string)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2939 (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
2940 s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2941 (match-string-no-properties num string)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2942
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2943 (defsubst org-no-properties (s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2944 (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
2945 s)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2946
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2947 (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
2948 (cond ((eq key t) t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2949 ((eq option t) t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2950 ((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
2951 (t (cdr (assq 'default option)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2952
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2953 (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
2954 "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
2955 (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
2956
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
2957 (defsubst org-mode-p ()
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
2958 "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
2959 (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
2960
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2961 (defsubst org-last (list)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2962 "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
2963 (car (last list)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2964
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2965 (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
2966 (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
2967 (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
2968
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2969 (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
2970 (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
2971 (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
2972
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2973 (defconst org-startup-options
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2974 '(("fold" org-startup-folded t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2975 ("overview" org-startup-folded t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2976 ("nofold" org-startup-folded nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2977 ("showall" org-startup-folded nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2978 ("content" org-startup-folded content)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2979 ("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
2980 ("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
2981 ("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
2982 ("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
2983 ("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
2984 ("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
2985 ("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
2986 ("logging" org-log-done t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2987 ("nologging" org-log-done nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2988 ("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
2989 ("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
2990
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2991 (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
2992 "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
2993 (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
2994 (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
2995 '("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
2996 "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
2997 (splitre "[ \t]+")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2998 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
2999 (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
3000 (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
3001 (widen)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3002 (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
3003 (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
3004 (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
3005 (cond
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3006 ((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
3007 (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
3008 (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
3009 (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
3010 ((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
3011 (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
3012 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
3013 ((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
3014 (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
3015 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
3016 ((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
3017 (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
3018 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
3019 ((equal key "TAGS")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3020 (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
3021 ((equal key "LINK")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3022 (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
3023 (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
3024 (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
3025 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
3026 ((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
3027 (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
3028 l var val)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3029 (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
3030 (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
3031 (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
3032 ((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
3033 (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
3034 (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
3035 (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
3036 '(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
3037 )))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3038 (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
3039 (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
3040 (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
3041 (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
3042 (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
3043 (when tags
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3044 (let (e tgs)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3045 (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
3046 (cond
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3047 ((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
3048 ((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
3049 ((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
3050 (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
3051 (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
3052 tgs))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3053 (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
3054 (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
3055 (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
3056 (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
3057 (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
3058 (push e org-tag-alist))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3059
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3060 ;; 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
3061 (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
3062 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
3063 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
3064 (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
3065 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
3066 (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
3067 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
3068 (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
3069 "\\|") "\\)\\>")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3070 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
3071 (concat "\\<\\("
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3072 (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
3073 (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
3074 "\\|")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3075 "\\)\\>")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3076 org-todo-line-regexp
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3077 (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
3078 (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
3079 "\\)\\>\\)? *\\(.*\\)")
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3080 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
3081 (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
3082 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
3083 (concat "^\\(\\*+\\)[ \t]*\\(?:\\("
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
3084 (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
3085 "\\)\\>\\)? *\\(.*?\\([ \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
3086 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
3087 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
3088 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
3089 (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
3090 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
3091 (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
3092 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
3093 (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
3094 org-scheduled-time-regexp
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3095 (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3096 org-closed-time-regexp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3097 (concat "\\<" org-closed-string " *\\[\\([^]]+\\)\\]")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3098 org-keyword-time-regexp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3099 (concat "\\<\\(" org-scheduled-string
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3100 "\\|" org-deadline-string
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3101 "\\|" org-closed-string
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3102 "\\|" org-clock-string "\\)"
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
3103 " *[[<]\\([^]>]+\\)[]>]")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3104 org-maybe-keyword-time-regexp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3105 (concat "\\(\\<\\(" org-scheduled-string
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3106 "\\|" org-deadline-string
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3107 "\\|" org-closed-string
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3108 "\\|" org-clock-string "\\)\\)?"
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
3109 " *\\([[<][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
3110
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3111 (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
3112
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3113 ;; Tell the compiler about dynamically scoped variables,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3114 ;; 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
3115 (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
3116 (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
3117 (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
3118 (defvar zmacs-regions) ; XEmacs regions
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3119 (defvar original-date) ; dynamically scoped in calendar
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3120 (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
3121 (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
3122 (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
3123 (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
3124 (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
3125 (defvar org-ts-what) ; dynamically scoped parameter
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3126 (defvar org-current-export-file) ; dynamically scoped parameter
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3127 (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
3128 (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
3129 (defvar timecnt) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3130 (defvar levels-open) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3131 (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
3132 (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
3133 (defvar date) ; dynamically scoped parameter
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3134 (defvar description) ; dynamically scoped parameter
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3135 (defvar ans1) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3136 (defvar ans2) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3137 (defvar starting-day) ; local variable
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3138 (defvar include-all-loc) ; local variable
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3139 (defvar vm-message-pointer) ; from vm
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3140 (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
3141 (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
3142 (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
3143 (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
3144 (defvar gnus-group-name) ; from gnus
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3145 (defvar gnus-article-current) ; from gnus
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3146 (defvar w3m-current-url) ; from w3m
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3147 (defvar w3m-current-title) ; from w3m
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3148 (defvar mh-progs) ; from MH-E
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3149 (defvar mh-current-folder) ; from MH-E
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3150 (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
3151 (defvar mh-index-folder) ; from MH-E
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3152 (defvar mh-searcher) ; from MH-E
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3153 (defvar org-selected-point) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3154 (defvar calendar-mode-map) ; from calendar.el
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3155 (defvar last-arg) ; local variable
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3156 (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
3157 (defvar remember-data-file) ; from remember.el
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3158 (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
3159 (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
3160 (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
3161 (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
3162 (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
3163 (defvar texmathp-why) ; from texmathp.el
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
3164 (defvar org-latex-regexps)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3165 (defvar outline-mode-menu-heading)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3166 (defvar outline-mode-menu-show)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3167 (defvar outline-mode-menu-hide)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3168
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3169 ;;; Define the mode
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3170
73616
a81e38c24e22 (org-mode-map): No longer copy `outline-mode-map' explicitly
Carsten Dominik <dominik@science.uva.nl>
parents: 73245
diff changeset
3171 (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
3172 (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
3173
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3174 (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
3175 (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
3176 (defvar org-tbl-menu) ; defined later in this file
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3177
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3178 ;; 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
3179 ;; an update.
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3180 (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
3181 "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
3182 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
3183 `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
3184 (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
3185 (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
3186 (defvar org-inhibit-startup nil) ; Dynamically-scoped param.
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
3187 (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
3188
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3189
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3190 ;;;###autoload
62712
b9935dc86aa4 (org-mode): Use `define-derived-mode' to define
Carsten Dominik <dominik@science.uva.nl>
parents: 62546
diff changeset
3191 (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
3192 "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
3193 \"Carsten's outline-mode for keeping track of everything.\"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3194
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3195 Org-mode develops organizational tasks around a NOTES file which
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3196 contains information about projects as plain text. Org-mode is
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3197 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
3198 of large files well structured. It supports ToDo items, deadlines and
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3199 time stamps, which magically appear in the diary listing of the Emacs
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3200 calendar. Tables are easily created with a built-in table editor.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3201 Plain text URL-like links connect to websites, emails (VM), Usenet
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3202 messages (Gnus), BBDB entries, and any files related to the project.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3203 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
3204 can be exported as a structured ASCII or HTML file.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3205
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
3206 The following commands are available:
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3207
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3208 \\{org-mode-map}"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3209
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3210 ;; 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
3211 ;; 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
3212 ;; 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
3213 ;; 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
3214 (if (featurep 'xemacs)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3215 (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
3216 ;; 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
3217 (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
3218 (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
3219 (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
3220 (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
3221 (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
3222 (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
3223
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3224 (easy-menu-add org-org-menu)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3225 (easy-menu-add org-tbl-menu)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3226 (org-install-agenda-files-menu)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3227 (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
3228 (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
3229 (when (featurep 'xemacs)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3230 (org-set-local 'line-move-ignore-invisible t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3231 (setq outline-regexp "\\*+")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3232 ;;(setq outline-regexp "\\(?:\\*+\\|[ \t]*\\(?:[-+*]\\|[0-9]+[.)]\\) \\)")
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3233 (setq outline-level 'org-outline-level)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3234 (when (and org-ellipsis (stringp org-ellipsis))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3235 (unless org-display-table
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3236 (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
3237 (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
3238 4 (string-to-vector org-ellipsis))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3239 (setq buffer-display-table org-display-table))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3240 (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
3241 ;; Calc embedded
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3242 (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
3243 (modify-syntax-entry ?# "<")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3244 (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
3245 (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
3246 'org-unfontify-region)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3247 ;; 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
3248 (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
3249 (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
3250 'local)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3251 ;; 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
3252 (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
3253 ;; Paragraphs and auto-filling
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
3254 (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
3255 (org-update-radio-target-regexp)
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
3256
62712
b9935dc86aa4 (org-mode): Use `define-derived-mode' to define
Carsten Dominik <dominik@science.uva.nl>
parents: 62546
diff changeset
3257 (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
3258 (interactive-p)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3259 (= (point-min) (point-max)))
62712
b9935dc86aa4 (org-mode): Use `define-derived-mode' to define
Carsten Dominik <dominik@science.uva.nl>
parents: 62546
diff changeset
3260 (insert " -*- mode: org -*-\n\n"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3261
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3262 (unless org-inhibit-startup
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3263 (when org-startup-align-all-tables
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3264 (let ((bmp (buffer-modified-p)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3265 (org-table-map-tables 'org-table-align)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3266 (set-buffer-modified-p bmp)))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3267 (if org-startup-with-deadline-check
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3268 (call-interactively 'org-check-deadlines)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3269 (cond
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3270 ((eq org-startup-folded t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3271 (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
3272 ((eq org-startup-folded 'content)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3273 (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
3274 (org-cycle '(4)) (org-cycle '(4))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3275
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3276 (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
3277 "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
3278 (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
3279
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3280 (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
3281 (save-excursion
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
3282 (and pos (goto-char pos))
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
3283 (+ (if (bolp) 1 0) (count-lines (point-min) (point)))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3284
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3285 (defun org-current-time ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3286 "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
3287 (if (> org-time-stamp-rounding-minutes 0)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3288 (let ((r org-time-stamp-rounding-minutes)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3289 (time (decode-time)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3290 (apply 'encode-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3291 (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
3292 (nthcdr 2 time))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3293 (current-time)))
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 (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
3296 "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
3297 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
3298 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
3299 (add-text-properties
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3300 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
3301 string)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3302 (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
3303
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
3304
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3305 ;;; Font-Lock stuff
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3306
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3307 (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
3308 (define-key org-mouse-map
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3309 (if (featurep 'xemacs) [button2] [mouse-2]) 'org-open-at-mouse)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3310 (define-key org-mouse-map
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3311 (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
3312 (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
3313 (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
3314 (when org-tab-follows-link
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3315 (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
3316 (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
3317 (when org-return-follows-link
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3318 (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
3319 (define-key org-mouse-map "\C-m" 'org-open-at-point))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3320
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3321 (require 'font-lock)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3322
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3323 (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
3324 (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
3325 "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
3326 (defconst org-link-re-with-space
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3327 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3328 "<?\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3329 "\\([^" org-non-link-chars " ]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3330 "[^" org-non-link-chars "]*"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3331 "[^" org-non-link-chars " ]\\)>?")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3332 "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
3333
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3334 (defconst org-link-re-with-space2
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3335 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3336 "<?\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3337 "\\([^" org-non-link-chars " ]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3338 "[^]\t\n\r]*"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3339 "[^" org-non-link-chars " ]\\)>?")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3340 "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
3341
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3342 (defconst org-angle-link-re
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3343 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3344 "<\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3345 "\\([^" org-non-link-chars " ]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3346 "[^" org-non-link-chars "]*"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3347 "\\)>")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3348 "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
3349 (defconst org-plain-link-re
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3350 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3351 "\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3352 "\\([^]\t\n\r<>,;() ]+\\)")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3353 "Matches plain link, without spaces.")
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
3354
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3355 (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
3356 "\\[\\[\\([^]]+\\)\\]\\(\\[\\([^]]+\\)\\]\\)?\\]"
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3357 "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
3358
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3359 (defconst org-bracket-link-analytic-regexp
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3360 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3361 "\\[\\["
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3362 "\\(\\(" (mapconcat 'identity org-link-types "\\|") "\\):\\)?"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3363 "\\([^]]+\\)"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3364 "\\]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3365 "\\(\\[" "\\([^]]+\\)" "\\]\\)?"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3366 "\\]"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3367 ; 1: http:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3368 ; 2: http
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3369 ; 3: path
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3370 ; 4: [desc]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3371 ; 5: desc
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3372
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3373 (defconst org-ts-lengths
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3374 (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
3375 (length (format-time-string (cdr org-time-stamp-formats))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3376 "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
3377 (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
3378 "Regular expression for fast time stamp matching.")
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
3379 (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
3380 "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
3381 (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
3382 "Regular expression matching time strings for analysis.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3383 (defconst org-ts-regexp2 (concat "<" org-ts-regexp1 ">")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3384 "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
3385 (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
3386 "Regular expression matching time stamps (also [..]), with groups.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3387 (defconst org-tr-regexp (concat org-ts-regexp "--?-?" org-ts-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3388 "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
3389 (defconst org-tr-regexp-both
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3390 (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
3391 "Regular expression matching a time stamp range.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3392 (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
3393 org-ts-regexp "\\)?")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3394 "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
3395 (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
3396 org-ts-regexp-both "\\)?")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3397 "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
3398 The time stamps may be either active or inactive.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3399
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3400 (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
3401
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3402 (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
3403 "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
3404 (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
3405 (progn
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3406 (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
3407 'face
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3408 (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
3409 org-emphasis-alist)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3410 (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
3411 '(font-lock-multiline t))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3412 (backward-char 1)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3413 t)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3414
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3415 (defun org-activate-plain-links (limit)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3416 "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
3417 (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
3418 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3419 (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
3420 (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
3421 'rear-nonsticky t
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3422 'keymap org-mouse-map
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3423 ))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3424 t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3425
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3426 (defun org-activate-angle-links (limit)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3427 "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
3428 (if (re-search-forward org-angle-link-re limit t)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3429 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3430 (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
3431 (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
3432 'rear-nonsticky t
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3433 'keymap org-mouse-map
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3434 ))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3435 t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3436
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3437 (defmacro org-maybe-intangible (props)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3438 "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
3439 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
3440 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
3441 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
3442 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
3443 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
3444 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
3445 (if (< emacs-major-version 22)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3446 `(append '(intangible t) ,props)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3447 props))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3448
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3449 (defun org-activate-bracket-links (limit)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3450 "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
3451 (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
3452 (let* ((help (concat "LINK: "
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
3453 (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
3454 ;; 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
3455 ;; 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
3456 ;; 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
3457 (ip (org-maybe-intangible
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3458 (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
3459 '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
3460 'help-echo help)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3461 (vp (list 'rear-nonsticky t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3462 'keymap org-mouse-map 'mouse-face 'highlight
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3463 'help-echo help)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3464 ;; 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
3465 ;; may have made some of this invisible.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3466 (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
3467 '(invisible nil))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3468 (if (match-end 3)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3469 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3470 (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
3471 (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
3472 (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
3473 (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
3474 (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
3475 (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
3476 t)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3477
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3478 (defun org-activate-dates (limit)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3479 "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
3480 ; (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
3481 ; (if (re-search-forward
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3482 ; (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
3483 ; limit t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3484 (if (re-search-forward org-tsr-regexp-both limit t)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3485 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3486 (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
3487 (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
3488 'rear-nonsticky t
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3489 'keymap org-mouse-map))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3490 (when org-display-custom-times
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3491 (if (match-end 3)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3492 (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
3493 (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
3494 t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3495
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3496 (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
3497 "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
3498 (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
3499 "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
3500 (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
3501 "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
3502
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3503 (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
3504 "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
3505 (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
3506 (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
3507 (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
3508 (progn
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3509 (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
3510 (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
3511 'rear-nonsticky t
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3512 'keymap org-mouse-map
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3513 '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
3514 'org-linked-text t))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3515 t)))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3516
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3517 (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
3518 "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
3519 (interactive)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3520 (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
3521 (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
3522 (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
3523 (org-restart-font-lock)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3524
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3525 (defun org-hide-wide-columns (limit)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3526 (let (s e)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3527 (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
3528 'org-cwidth t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3529 (when s
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3530 (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
3531 (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
3532 (goto-char e)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3533 t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3534
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3535 (defun org-restart-font-lock ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3536 "Restart font-lock-mode, to force refontification."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3537 (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
3538 (font-lock-mode -1)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3539 (font-lock-mode 1)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3540
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3541 (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
3542 "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
3543 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
3544 (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
3545 rtn)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3546 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3547 (goto-char (point-min))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3548 (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
3549 (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
3550 rtn)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3551
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3552 (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
3553 "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
3554 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
3555 between words."
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3556 (and targets
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3557 (concat
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3558 "\\<\\("
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3559 (mapconcat
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3560 (lambda (x)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3561 (while (string-match " +" x)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3562 (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
3563 x)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3564 targets
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3565 "\\|")
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3566 "\\)\\>")))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3567
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
3568 (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
3569 "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
3570
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3571 (defun org-activate-camels (limit)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3572 "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
3573 (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
3574 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3575 (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
3576 (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
3577 'rear-nonsticky t
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3578 'keymap org-mouse-map))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3579 t)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3580
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3581 (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
3582 (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
3583 (progn
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3584 (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
3585 (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
3586 'rear-nonsticky t
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3587 'keymap org-mouse-map))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3588 t)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3589
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3590 (defun org-font-lock-level ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3591 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3592 (org-back-to-heading t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3593 (- (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
3594
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3595 (defun org-outline-level ()
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3596 (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3597 (looking-at outline-regexp)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3598 (if (match-beginning 1)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3599 (+ (org-get-string-indentation (match-string 1)) 1000)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3600 (- (match-end 0) (match-beginning 0)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3601
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3602 (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
3603
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3604 (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
3605 (let* ((em org-fontify-emphasized-text)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3606 (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
3607 (org-font-lock-extra-keywords
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3608 ;; Headlines
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3609 (list
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3610 '("^\\(\\**\\)\\(\\*\\)\\(.*\\)" (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
3611 (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
3612 '("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3613 (1 'org-table))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3614 ;; Links
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3615 (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
3616 (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
3617 (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
3618 (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
3619 (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
3620 (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
3621 (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
3622 (if org-table-limit-column-width
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3623 '(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
3624 ;; TODO lines
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3625 (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
3626 '(1 'org-todo t))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3627 ;; Priorities
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3628 (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
3629 ;; Special keywords
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3630 (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
3631 (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
3632 (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
3633 (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
3634 ;; Emphasis
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3635 (if em
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3636 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3637 '(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
3638 '(org-do-emphasis-faces)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3639 ;; 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
3640 '("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3641 2 'bold prepend)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3642 (if org-provide-checkbox-statistics
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3643 '("\\[\\([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
3644 (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
3645 ;; COMMENT
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3646 (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
3647 "\\|" org-quote-string "\\)\\>")
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3648 '(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
3649 '("^#.*" (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
3650 ;; DONE
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3651 (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
3652 (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
3653 '(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
3654 (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
3655 '(1 'org-done t)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3656 ;; Table stuff
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3657 '("^[ \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
3658 '("| *\\(:?=[^|\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
3659 '("^[ \t]*| *\\([#!$*_^]\\) *|" (1 'org-formula t))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3660 (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
3661 '("| *\\(<[0-9]+>\\) *" (1 'org-formula t)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3662 '("^\\*+ \\(.*: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
3663 )))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3664 (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
3665 ;; 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
3666 (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
3667 (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
3668 '(org-font-lock-keywords t nil nil backward-paragraph))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3669 (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
3670
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3671 (defvar org-m nil)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3672 (defvar org-l nil)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3673 (defvar org-f nil)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3674 (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
3675 "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
3676 (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
3677 (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
3678 ; (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
3679 (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
3680 (cond
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3681 ((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
3682 ((eq n 2) org-f)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3683 (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
3684
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3685 (defun org-unfontify-region (beg end &optional maybe_loudly)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3686 "Remove fontification and activation overlays from links."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3687 (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
3688 (let* ((buffer-undo-list t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3689 (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
3690 (inhibit-modification-hooks t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3691 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
3692 (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
3693 '(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
3694 rear-nonsticky t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3695 invisible t intangible t))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3696
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3697 ;;; Visibility cycling
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3698
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3699 (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
3700 (make-variable-buffer-local 'org-cycle-global-status)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3701 (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
3702 (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
3703
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3704 ;;;###autoload
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3705 (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
3706 "Visibility cycling for Org-mode.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3707
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3708 - 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
3709 buffer through 3 states (global cycling)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3710 1. OVERVIEW: Show only top-level headlines.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3711 2. CONTENTS: Show all headlines of all levels, but no body text.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3712 3. SHOW ALL: Show everything.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3713
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3714 - 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
3715 by this line through 3 different states (local cycling)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3716 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
3717 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
3718 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
3719 and zoom in further.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3720 3. SUBTREE: Show the entire subtree, including body text.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3721
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3722 - 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
3723 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
3724 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
3725
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3726 - When point is not at the beginning of a headline, execute
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3727 `indent-relative', like TAB normally does. See the option
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3728 `org-cycle-emulate-tab' for details.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3729
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3730 - 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
3731 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
3732 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3733 (let* ((outline-regexp
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3734 (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
3735 "\\(?:\\*+\\|\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) \\)"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3736 outline-regexp))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3737 (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
3738 (not (looking-at outline-regexp))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3739 (org-cycle-hook
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3740 (if bob-special
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3741 (delq 'org-optimize-window-after-visibility-change
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3742 (copy-sequence org-cycle-hook))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3743 org-cycle-hook))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3744 (pos (point)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3745
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3746 (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
3747 ;; special case: use global cycling
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3748 (setq arg t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3749
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3750 (cond
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3751
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3752 ((org-at-table-p 'any)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3753 ;; 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
3754 (or (org-table-recognize-table.el)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3755 (progn
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3756 (if arg (org-table-edit-field t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3757 (org-table-justify-field-maybe)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3758 (call-interactively 'org-table-next-field)))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3759
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3760 ((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
3761
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3762 (cond
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3763 ((and (eq last-command this-command)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3764 (eq org-cycle-global-status 'overview))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3765 ;; 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
3766 ;; 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
3767 (message "CONTENTS...")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3768 (org-content)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3769 (message "CONTENTS...done")
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3770 (setq org-cycle-global-status 'contents)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3771 (run-hook-with-args 'org-cycle-hook 'contents))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3772
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3773 ((and (eq last-command this-command)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3774 (eq org-cycle-global-status 'contents))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3775 ;; 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
3776 (show-all)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3777 (message "SHOW ALL")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3778 (setq org-cycle-global-status 'all)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3779 (run-hook-with-args 'org-cycle-hook 'all))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3780
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3781 (t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3782 ;; Default action: go to overview
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3783 (org-overview)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3784 (message "OVERVIEW")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3785 (setq org-cycle-global-status 'overview)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3786 (run-hook-with-args 'org-cycle-hook 'overview))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3787
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3788 ((integerp arg)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3789 ;; Show-subtree, ARG levels up from here.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3790 (save-excursion
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3791 (org-back-to-heading)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3792 (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
3793 (- (funcall outline-level) arg)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3794 (org-show-subtree)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3795
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3796 ((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
3797 ;; At a heading: rotate between three different views
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3798 (org-back-to-heading)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3799 (let ((goal-column 0) eoh eol eos)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3800 ;; First, some boundaries
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3801 (save-excursion
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3802 (org-back-to-heading)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3803 (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3804 (beginning-of-line 2)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3805 (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
3806 (get-char-property (1- (point)) 'invisible))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3807 (beginning-of-line 2)) (setq eol (point)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3808 (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
3809 (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
3810 (outline-next-heading))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3811 ;; 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
3812 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3813 ((and (= eos eoh)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3814 ;; Nothing is hidden behind this heading
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3815 (message "EMPTY ENTRY")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3816 (setq org-cycle-subtree-status nil)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3817 ((>= eol eos)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3818 ;; 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
3819 (org-show-entry)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3820 (show-children)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3821 (message "CHILDREN")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3822 (setq org-cycle-subtree-status 'children)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3823 (run-hook-with-args 'org-cycle-hook 'children))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3824 ((and (eq last-command this-command)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3825 (eq org-cycle-subtree-status 'children))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3826 ;; We just showed the children, now show everything.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3827 (org-show-subtree)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3828 (message "SUBTREE")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3829 (setq org-cycle-subtree-status 'subtree)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3830 (run-hook-with-args 'org-cycle-hook 'subtree))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3831 (t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3832 ;; Default action: hide the subtree.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3833 (hide-subtree)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3834 (message "FOLDED")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3835 (setq org-cycle-subtree-status 'folded)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3836 (run-hook-with-args 'org-cycle-hook 'folded)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3837
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3838 ;; TAB emulation
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3839 (buffer-read-only (org-back-to-heading))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3840
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3841 ((org-try-cdlatex-tab))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3842
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3843 ((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
3844 (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
3845 (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
3846 (= (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
3847 (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
3848 (>= (match-end 0) pos))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3849 t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3850 (eq org-cycle-emulate-tab t))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3851 (if (and (looking-at "[ \n\r\t]")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3852 (string-match "^[ \t]*$" (buffer-substring
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3853 (point-at-bol) (point))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3854 (progn
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3855 (beginning-of-line 1)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3856 (and (looking-at "[ \t]+") (replace-match ""))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3857 (indent-relative))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3858
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3859 (t (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3860 (org-back-to-heading)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3861 (org-cycle))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3862
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3863 ;;;###autoload
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3864 (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
3865 "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
3866 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3867 (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
3868 (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
3869 (if (integerp arg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3870 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3871 (show-all)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3872 (hide-sublevels arg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3873 (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
3874 (org-cycle '(4)))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3875
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3876 (defun org-overview ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3877 "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
3878 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
3879 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
3880 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
3881 results."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3882 (interactive)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3883 (hide-sublevels (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3884 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3885 (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
3886 (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3887 (goto-char (match-beginning 0))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3888 (funcall outline-level))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3889 1))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3890
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3891 ;; 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
3892 (defun org-content ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3893 "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
3894 (interactive)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3895 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3896 ;; 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
3897 (goto-char (point-max))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3898 (catch 'exit
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3899 (while (and (progn (condition-case nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3900 (outline-previous-visible-heading 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3901 (error (goto-char (point-min))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3902 t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3903 (looking-at outline-regexp))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3904 (show-branches)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3905 (if (bobp) (throw 'exit nil))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3906
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3907
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3908 (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
3909 "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
3910 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
3911 (when (get-buffer-window (current-buffer))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3912 (cond
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3913 ((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
3914 ((eq state 'content) nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3915 ((eq state 'all) nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3916 ((eq state 'folded) nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3917 ((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
3918 ((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
3919
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3920 (defun org-subtree-end-visible-p ()
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3921 "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
3922 (pos-visible-in-window-p
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
3923 (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
3924
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3925 (defun org-first-headline-recenter (&optional N)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3926 "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
3927 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
3928 (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
3929 (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
3930 (beginning-of-line)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3931 (recenter (prefix-numeric-value N))))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3932
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3933 (defvar org-goto-window-configuration nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3934 (defvar org-goto-marker nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3935 (defvar org-goto-map (make-sparse-keymap))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3936 (let ((cmds '(isearch-forward isearch-backward)) cmd)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3937 (while (setq cmd (pop cmds))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3938 (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
3939 (define-key org-goto-map "\C-m" 'org-goto-ret)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3940 (define-key org-goto-map [(left)] 'org-goto-left)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3941 (define-key org-goto-map [(right)] 'org-goto-right)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3942 (define-key org-goto-map [(?q)] 'org-goto-quit)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3943 (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
3944 (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
3945 (define-key org-goto-map [(tab)] 'org-cycle)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3946 (define-key org-goto-map [(down)] 'outline-next-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3947 (define-key org-goto-map [(up)] 'outline-previous-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3948 (define-key org-goto-map "n" 'outline-next-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3949 (define-key org-goto-map "p" 'outline-previous-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3950 (define-key org-goto-map "f" 'outline-forward-same-level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3951 (define-key org-goto-map "b" 'outline-backward-same-level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3952 (define-key org-goto-map "u" 'outline-up-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3953 (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
3954 (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
3955 (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
3956 (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
3957 (define-key org-goto-map "\C-c\C-u" 'outline-up-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3958 (let ((l '(1 2 3 4 5 6 7 8 9 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3959 (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
3960
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3961 (defconst org-goto-help
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3962 "Select a location to jump to, press RET
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3963 \[Up]/[Down]=next/prev headline TAB=cycle visibility RET=select [Q]uit")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3964
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3965 (defun org-goto ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3966 "Go to a different location of the document, keeping current visibility.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3967
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3968 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
3969 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
3970 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
3971 which may not be what you want.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3972
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3973 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
3974 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
3975 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
3976 original buffer in which the visibility is still unchanged. It then jumps
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3977 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
3978 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3979 (let* ((org-goto-start-pos (point))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3980 (selected-point
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3981 (org-get-location (current-buffer) org-goto-help)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3982 (if selected-point
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3983 (progn
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3984 (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
3985 (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
3986 (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
3987 (org-show-context 'org-goto)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3988 (error "Quit"))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3989
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3990 (defun org-get-location (buf help)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3991 "Let the user select a location in the Org-mode buffer BUF.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3992 This function uses a recursive edit. It returns the selected position
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3993 or nil."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3994 (let (org-selected-point)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3995 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3996 (save-window-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3997 (delete-other-windows)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3998 (switch-to-buffer (get-buffer-create "*org-goto*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3999 (with-output-to-temp-buffer "*Help*"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4000 (princ help))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4001 (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
4002 (setq buffer-read-only nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4003 (erase-buffer)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
4004 (insert-buffer-substring buf)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4005 (let ((org-startup-truncated t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4006 (org-startup-folded t)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
4007 (org-startup-align-all-tables nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4008 (org-startup-with-deadline-check nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4009 (org-mode))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4010 (setq buffer-read-only t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4011 (if (boundp 'org-goto-start-pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4012 (goto-char org-goto-start-pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4013 (goto-char (point-min)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4014 (org-beginning-of-line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4015 (message "Select location and press RET")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4016 ;; 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
4017 ;; 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
4018 (let ((gm (current-global-map))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4019 (overriding-local-map org-goto-map))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4020 (unwind-protect
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4021 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4022 (use-global-map org-goto-map)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4023 (recursive-edit))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4024 (use-global-map gm)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4025 (kill-buffer "*org-goto*")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4026 org-selected-point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4027
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4028 (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
4029 "Finish `org-goto' by going to the new location."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4030 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4031 (setq org-selected-point (point)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4032 current-prefix-arg arg)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4033 (throw 'exit nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4034
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4035 (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
4036 "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
4037 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4038 (if (org-on-heading-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4039 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4040 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4041 (setq org-selected-point (point)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4042 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
4043 (throw 'exit nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4044 (error "Not on a heading")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4045
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4046 (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
4047 "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
4048 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4049 (if (org-on-heading-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4050 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4051 (outline-end-of-subtree)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4052 (or (eobp) (forward-char 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4053 (setq org-selected-point (point)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4054 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
4055 (throw 'exit nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4056 (error "Not on a heading")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4057
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4058 (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
4059 "Finish `org-goto' without cursor motion."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4060 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4061 (setq org-selected-point nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4062 (throw 'exit nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4063
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4064 ;;; Promotion, Demotion, Inserting new headlines
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4065
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4066 (defvar org-ignore-region nil
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4067 "To temporarily disable the active region.")
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4068
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4069 (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
4070 "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
4071 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
4072 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
4073 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
4074 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
4075 the current headline."
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4076 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4077 (if (= (buffer-size) 0)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4078 (insert "\n* ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4079 (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
4080 (let* ((head (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4081 (condition-case nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4082 (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4083 (org-back-to-heading)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4084 (match-string 0))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4085 (error "*"))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4086 (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
4087 pos)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4088 (cond
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4089 ((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
4090 (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
4091 (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
4092 ((and (bolp) (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4093 (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
4094 nil)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4095 (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
4096 (insert head) (just-one-space)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4097 (setq pos (point))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4098 (end-of-line 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4099 (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
4100 (run-hooks 'org-insert-heading-hook)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4101
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4102 (defun org-in-item-p ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4103 "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
4104 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
4105 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4106 (condition-case nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4107 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4108 (org-beginning-of-item)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4109 (org-at-item-p)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4110 t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4111 (error nil))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4112
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4113 (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
4114 "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
4115 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
4116 (when (save-excursion
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4117 (condition-case nil
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4118 (progn
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4119 (org-beginning-of-item)
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4120 (org-at-item-p)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4121 (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
4122 t)
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4123 (error nil)))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4124 (let* ((bul (match-string 0))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4125 (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
4126 (match-end 0)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4127 (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
4128 pos)
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4129 (cond
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4130 ((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
4131 ;; before the bullet
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4132 (beginning-of-line 1)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4133 (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
4134 ((<= (point) eow)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4135 (beginning-of-line 1))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4136 (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
4137 (insert bul (if checkbox "[ ]" ""))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4138 (just-one-space)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4139 (setq pos (point))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4140 (end-of-line 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4141 (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
4142 (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
4143 (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
4144 t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4145
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4146 (defun org-insert-todo-heading (arg)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4147 "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
4148 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
4149 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
4150 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4151 (when (not (org-insert-item 'checkbox))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4152 (org-insert-heading)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4153 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4154 (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
4155 (outline-previous-heading)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4156 (looking-at org-todo-line-regexp))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4157 (if (or arg
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4158 (not (match-beginning 2))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4159 (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
4160 (insert (car org-todo-keywords) " ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4161 (insert (match-string 2) " "))))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4162
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4163 (defun org-promote-subtree ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4164 "Promote the entire subtree.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4165 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
4166 (interactive)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4167 (save-excursion
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4168 (org-map-tree 'org-promote))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4169 (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
4170
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4171 (defun org-demote-subtree ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4172 "Demote the entire subtree. See `org-demote'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4173 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
4174 (interactive)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4175 (save-excursion
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4176 (org-map-tree 'org-demote))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4177 (org-fix-position-after-promote))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4178
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4179
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4180 (defun org-do-promote ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4181 "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
4182 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
4183 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
4184 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4185 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4186 (if (org-region-active-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4187 (org-map-region 'org-promote (region-beginning) (region-end))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4188 (org-promote)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4189 (org-fix-position-after-promote))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4190
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4191 (defun org-do-demote ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4192 "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
4193 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
4194 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
4195 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4196 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4197 (if (org-region-active-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4198 (org-map-region 'org-demote (region-beginning) (region-end))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4199 (org-demote)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4200 (org-fix-position-after-promote))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4201
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4202 (defun org-fix-position-after-promote ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4203 "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
4204 (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
4205 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4206 (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
4207 (looking-at org-todo-regexp)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4208 (insert " "))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4209 (and (equal (char-after) ?\ )
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4210 (equal (char-before) ?*)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4211 (forward-char 1)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4212
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4213 (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
4214 "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
4215 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
4216 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
4217 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
4218 (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
4219 (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
4220 ((> 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
4221 ((< 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
4222 (max 1 (+ level change))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4223
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4224 (defun org-promote ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4225 "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
4226 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
4227 in the region."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4228 (org-back-to-heading t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4229 (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
4230 (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
4231 (diff (abs (- level (length up-head)))))
63431
fd4b70bc23a4 (org-promote, org-evaluate-time-range, org-agenda-next-date-line,
Juanma Barranquero <lekktu@gmail.com>
parents: 63367
diff changeset
4232 (if (= level 1) (error "Cannot promote to level 0. UNDO to recover"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4233 (replace-match up-head nil t)
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
4234 ;; Fixup tag positioning
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
4235 (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
4236 (if org-adapt-indentation (org-fixup-indentation (- diff)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4237
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4238 (defun org-demote ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4239 "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
4240 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
4241 in the region."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4242 (org-back-to-heading t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4243 (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
4244 (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
4245 (diff (abs (- level (length down-head)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4246 (replace-match down-head nil t)
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
4247 ;; Fixup tag positioning
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
4248 (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
4249 (if org-adapt-indentation (org-fixup-indentation diff))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4250
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4251 (defun org-map-tree (fun)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4252 "Call FUN for every heading underneath the current one."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4253 (org-back-to-heading)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
4254 (let ((level (funcall outline-level)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4255 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4256 (funcall fun)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4257 (while (and (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4258 (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4259 (> (funcall outline-level) level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4260 (not (eobp)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4261 (funcall fun)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4262
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4263 (defun org-map-region (fun beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4264 "Call FUN for every heading between BEG and END."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4265 (let ((org-ignore-region t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4266 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4267 (setq end (copy-marker end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4268 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4269 (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
4270 (< (point) end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4271 (funcall fun))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4272 (while (and (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4273 (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4274 (< (point) end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4275 (not (eobp)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4276 (funcall fun)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4277
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4278 (defun org-fixup-indentation (diff)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4279 "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
4280 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
4281 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
4282 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4283 (let ((end (save-excursion (outline-next-heading)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4284 (point-marker)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4285 (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
4286 "^\\S-"
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4287 (concat "^ \\{0," (int-to-string (- diff)) "\\}\\S-")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4288 col)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4289 (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
4290 (while (re-search-forward "^[ \t]+" end t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4291 (goto-char (match-end 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4292 (setq col (current-column))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4293 (if (< diff 0) (replace-match ""))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4294 (indent-to (+ diff col))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4295 (move-marker end nil))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4296
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4297 ;;; Vertical tree motion, cutting and pasting of subtrees
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4298
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4299 (defun org-move-subtree-up (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4300 "Move the current subtree up past ARG headlines of the same level."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4301 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4302 (org-move-subtree-down (- (prefix-numeric-value arg))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4303
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4304 (defun org-move-subtree-down (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4305 "Move the current subtree down past ARG headlines of the same level."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4306 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4307 (setq arg (prefix-numeric-value arg))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4308 (let ((movfunc (if (> arg 0) 'outline-get-next-sibling
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4309 'outline-get-last-sibling))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4310 (ins-point (make-marker))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4311 (cnt (abs arg))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4312 beg end txt folded)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4313 ;; Select the tree
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4314 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4315 (setq beg (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4316 (save-match-data
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4317 (save-excursion (outline-end-of-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4318 (setq folded (org-invisible-p)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4319 (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
4320 (outline-next-heading)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4321 (setq end (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4322 ;; Find insertion point, with error handling
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4323 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4324 (while (> cnt 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4325 (or (and (funcall movfunc) (looking-at outline-regexp))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4326 (progn (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4327 (error "Cannot move past superior level or buffer limit")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4328 (setq cnt (1- cnt)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4329 (if (> arg 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4330 ;; Moving forward - still need to move over subtree
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4331 (progn (outline-end-of-subtree)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4332 (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4333 (if (not (or (looking-at (concat "^" outline-regexp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4334 (bolp)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4335 (newline))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4336 (move-marker ins-point (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4337 (setq txt (buffer-substring beg end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4338 (delete-region beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4339 (insert txt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4340 (goto-char ins-point)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4341 (if folded (hide-subtree))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4342 (move-marker ins-point nil)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4343
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4344 (defvar org-subtree-clip ""
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4345 "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
4346 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
4347 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
4348
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4349 (defvar org-subtree-clip-folded nil
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4350 "Was the last copied subtree folded?
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4351 This is used to fold the tree back after pasting.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4352
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4353 (defun org-cut-subtree ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4354 "Cut the current subtree into the clipboard.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4355 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
4356 (interactive)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4357 (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
4358
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4359 (defun org-copy-subtree (&optional cut)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4360 "Cut the current subtree into the clipboard.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4361 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
4362 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
4363 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4364 (let (beg end folded)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4365 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4366 (setq beg (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4367 (save-match-data
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4368 (save-excursion (outline-end-of-heading)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4369 (setq folded (org-invisible-p)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4370 (outline-end-of-subtree))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4371 (if (equal (char-after) ?\n) (forward-char 1))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4372 (setq end (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4373 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4374 (when (> end beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4375 (setq org-subtree-clip-folded folded)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4376 (if cut (kill-region beg end) (copy-region-as-kill beg end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4377 (setq org-subtree-clip (current-kill 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4378 (message "%s: Subtree with %d characters"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4379 (if cut "Cut" "Copied")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4380 (length org-subtree-clip)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4381
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4382 (defun org-paste-subtree (&optional level tree)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4383 "Paste the clipboard as a subtree, with modification of headline level.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4384 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
4385 level. By default, the new level is derived from the visible headings
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4386 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
4387 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
4388 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
4389 This makes sure that the subtree remains an independent subtree and does
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4390 not swallow low level entries.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4391
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4392 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
4393 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
4394 cursor is after \"*****\", then the tree will be shifted to level 5.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4395
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4396 If you want to insert the tree as is, just use \\[yank].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4397
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4398 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
4399 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4400 (unless (org-kill-is-subtree-p tree)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4401 (error
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4402 (substitute-command-keys
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4403 "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
4404 (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
4405 (^re (concat "^\\(" outline-regexp "\\)"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4406 (re (concat "\\(" outline-regexp "\\)"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4407 (^re_ (concat "\\(" outline-regexp "\\)[ \t]*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4408
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4409 (old-level (if (string-match ^re txt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4410 (- (match-end 0) (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4411 -1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4412 (force-level (cond (level (prefix-numeric-value level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4413 ((string-match
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4414 ^re_ (buffer-substring (point-at-bol) (point)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4415 (- (match-end 0) (match-beginning 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4416 (t nil)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4417 (previous-level (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4418 (condition-case nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4419 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4420 (outline-previous-visible-heading 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4421 (if (looking-at re)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4422 (- (match-end 0) (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4423 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4424 (error 1))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4425 (next-level (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4426 (condition-case nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4427 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4428 (outline-next-visible-heading 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4429 (if (looking-at re)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4430 (- (match-end 0) (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4431 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4432 (error 1))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4433 (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
4434 (shift (if (or (= old-level -1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4435 (= new-level -1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4436 (= old-level new-level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4437 0
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4438 (- new-level old-level)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4439 (shift1 shift)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4440 (delta (if (> shift 0) -1 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4441 (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
4442 (org-odd-levels-only nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4443 beg end)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4444 ;; Remove the forces level indicator
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4445 (if force-level
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4446 (delete-region (point-at-bol) (point)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4447 ;; Make sure we start at the beginning of an empty line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4448 (if (not (bolp)) (insert "\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4449 (if (not (looking-at "[ \t]*$"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4450 (progn (insert "\n") (backward-char 1)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4451 ;; Paste
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4452 (setq beg (point))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4453 (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
4454 (setq txt (replace-match "\n" t t txt)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4455 (insert txt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4456 (setq end (point))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4457 (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
4458 (replace-match "\n"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4459 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4460 ;; Shift if necessary
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4461 (if (= shift 0)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4462 (message "Pasted at level %d, without shift" new-level)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4463 (save-restriction
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4464 (narrow-to-region beg end)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4465 (while (not (= shift 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4466 (org-map-region func (point-min) (point-max))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4467 (setq shift (+ delta shift)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4468 (goto-char (point-min))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4469 (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
4470 new-level shift1)))
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4471 (if (and kill-ring
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4472 (eq org-subtree-clip (current-kill 0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4473 org-subtree-clip-folded)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4474 ;; 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
4475 (hide-subtree))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4476
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4477 (defun org-kill-is-subtree-p (&optional txt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4478 "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
4479 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
4480 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
4481 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
4482 which is OK for `org-paste-subtree'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4483 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
4484 (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
4485 (start-level (and kill
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4486 (string-match (concat "\\`" outline-regexp) kill)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4487 (- (match-end 0) (match-beginning 0))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4488 (re (concat "^" outline-regexp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4489 (start 1))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4490 (if (not start-level)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4491 nil ;; does not even start with a heading
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4492 (catch 'exit
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4493 (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
4494 (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
4495 (throw 'exit nil)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4496 t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4497
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4498 (defun org-narrow-to-subtree ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4499 "Narrow buffer to the current subtree."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4500 (interactive)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4501 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4502 (narrow-to-region
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4503 (progn (org-back-to-heading) (point))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4504 (progn (org-end-of-subtree t) (point)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4505
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
4506 ;;; Plain list items
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4507
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4508 (defun org-at-item-p ()
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4509 "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
4510 (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
4511 (save-excursion
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4512 (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
4513 (looking-at
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4514 (cond
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4515 ((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
4516 ((= llt ?.) "\\([ \t]*\\([-+]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4517 ((= llt ?\)) "\\([ \t]*\\([-+]\\|\\([0-9]+)\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4518 (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
4519
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4520 (defun org-at-item-checkbox-p ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4521 "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
4522 (and (org-at-item-p)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4523 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4524 (goto-char (match-end 0))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4525 (skip-chars-forward " \t")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4526 (looking-at "\\[[ X]\\]"))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4527
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4528 (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
4529 "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
4530 (interactive "P")
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4531 (catch 'exit
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4532 (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
4533 (cond
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4534 ((org-region-active-p)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4535 (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
4536 ((org-on-heading-p)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4537 (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
4538 ((org-at-item-checkbox-p)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4539 (save-excursion
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4540 (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
4541 (throw 'exit t))
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4542 (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
4543 (save-excursion
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4544 (goto-char beg)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4545 (while (< (point) end)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4546 (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
4547 (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
4548 (when (eq firstnew 'unknown)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4549 (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
4550 (replace-match
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4551 (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
4552 (beginning-of-line 2)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4553 (org-update-checkbox-count-maybe))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4554
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4555 (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
4556 "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
4557 (when org-provide-checkbox-statistics
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4558 (org-update-checkbox-count)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4559
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4560 (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
4561 "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
4562 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
4563 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
4564 the whole buffer."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4565 (interactive "P")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4566 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4567 (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
4568 (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
4569 (end (move-marker (make-marker)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4570 (progn (outline-next-heading) (point))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4571 (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
4572 (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
4573 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
4574 (when all
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4575 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4576 (outline-next-heading)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4577 (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
4578 (goto-char beg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4579 (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
4580 (setq cstat (1+ cstat)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4581 b1 (match-beginning 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4582 e1 (match-end 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4583 f1 (match-beginning 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4584 lim (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4585 ((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
4586 ((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
4587 (t nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4588 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
4589 (goto-char e1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4590 (when lim
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4591 (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
4592 (if (equal (match-string 2) "[ ]")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4593 (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
4594 (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
4595 (delete-region b1 e1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4596 (goto-char b1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4597 (insert (if f1
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4598 (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
4599 (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
4600 (when (interactive-p)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4601 (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
4602 (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
4603
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4604 (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
4605 "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
4606 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
4607 it will be `org-todo'."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4608 (if (match-end 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4609 (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
4610 (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
4611 (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
4612 'org-done
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4613 'org-todo)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4614
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4615 (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
4616 "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
4617 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
4618 (if line
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4619 (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
4620 (match-end 0))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4621 (save-excursion
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4622 (beginning-of-line 1)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4623 (skip-chars-forward " \t")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4624 (current-column))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4625
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4626 (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
4627 "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
4628 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
4629 (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
4630 (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
4631 (setq s (replace-match
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4632 (make-string
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4633 (- (* 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
4634 (match-beginning 0)) ?\ )
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4635 t t s)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4636 s)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4637
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4638 ;; FIXME: document properly.
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4639 (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
4640 "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
4641 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
4642 (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
4643 (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
4644 (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
4645 (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
4646 (if (> i1 0)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4647 (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
4648 l)))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4649
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4650 (defun org-beginning-of-item ()
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4651 "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
4652 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
4653 (interactive)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4654 (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
4655 (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
4656 (beginning-of-line 2) (point)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4657 ind ind1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4658 (if (org-at-item-p)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4659 (beginning-of-line 1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4660 (beginning-of-line 1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4661 (skip-chars-forward " \t")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4662 (setq ind (current-column))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4663 (if (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4664 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4665 (beginning-of-line 0)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4666 (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
4667 (unless (looking-at "[ \t]*$")
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4668 (skip-chars-forward " \t")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4669 (setq ind1 (current-column))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4670 (if (< ind1 ind)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4671 (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
4672 nil
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4673 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4674 (error "Not in an item")))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4675
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4676 (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
4677 "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
4678 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
4679 (interactive)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4680 (let ((pos (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4681 (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
4682 (ind (save-excursion
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4683 (org-beginning-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4684 (skip-chars-forward " \t")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4685 (current-column)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4686 ind1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4687 (if (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4688 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4689 (beginning-of-line 2)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4690 (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
4691 (unless (looking-at "[ \t]*$")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4692 (skip-chars-forward " \t")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4693 (setq ind1 (current-column))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4694 (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
4695 (beginning-of-line 1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4696 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4697 (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
4698
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4699 (defun org-next-item ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4700 "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
4701 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
4702 (interactive)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4703 (let (ind ind1 (pos (point)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4704 (org-beginning-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4705 (setq ind (org-get-indentation))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4706 (org-end-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4707 (setq ind1 (org-get-indentation))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4708 (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
4709 (goto-char pos)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4710 (error "On last item"))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4711
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4712 (defun org-previous-item ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4713 "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
4714 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
4715 (interactive)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4716 (let (beg ind (pos (point)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4717 (org-beginning-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4718 (setq beg (point))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4719 (setq ind (org-get-indentation))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4720 (goto-char beg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4721 (catch 'exit
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4722 (while t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4723 (beginning-of-line 0)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4724 (if (looking-at "[ \t]*$")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4725 nil
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4726 (if (<= (org-get-indentation) ind)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4727 (throw 'exit t)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4728 (condition-case nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4729 (org-beginning-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4730 (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
4731 (error "On first item")))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4732
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4733 (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
4734 "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
4735 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
4736 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
4737 (interactive)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4738 (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
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 (setq beg (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4741 (setq ind (org-get-indentation))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4742 (org-end-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4743 (setq end (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4744 (setq ind1 (org-get-indentation))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4745 (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
4746 (progn
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4747 (org-end-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4748 (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
4749 (save-excursion
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4750 (delete-region beg end))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4751 (setq pos (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4752 (insert txt)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4753 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4754 (org-maybe-renumber-ordered-list))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4755 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4756 (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
4757
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4758 (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
4759 "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
4760 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
4761 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
4762 (interactive "p")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4763 (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
4764 (org-beginning-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4765 (setq beg (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4766 (setq ind (org-get-indentation))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4767 (org-end-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4768 (setq end (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4769 (goto-char beg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4770 (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4771 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4772 (beginning-of-line 0)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4773 (if (looking-at "[ \t]*$")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4774 nil
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4775 (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
4776 (throw 'exit t)))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4777 (condition-case nil
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4778 (org-beginning-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4779 (error (goto-char beg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4780 (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
4781 (setq ind1 (org-get-indentation))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4782 (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
4783 (progn
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4784 (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
4785 (save-excursion
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4786 (delete-region beg end))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4787 (setq pos (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4788 (insert txt)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4789 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4790 (org-maybe-renumber-ordered-list))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4791 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4792 (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
4793
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4794 (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
4795 "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
4796 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
4797 doing the renumbering."
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4798 (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
4799 (org-at-item-p)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4800 (match-beginning 3)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4801 (org-renumber-ordered-list 1)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4802
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4803 (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
4804 "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
4805 (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
4806 (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4807 (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
4808 (setq c (aref s n))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4809 (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
4810 ((= 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
4811 (t (throw 'exit t)))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4812 i))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4813
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4814 (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
4815 "Renumber an ordered plain list.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4816 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
4817 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
4818 (interactive "p")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4819 (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
4820 (match-beginning 3))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4821 (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
4822 (let ((line (org-current-line))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4823 (col (current-column))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4824 (ind (org-get-string-indentation
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4825 (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
4826 ;; (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
4827 ind1 (n (1- arg)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4828 ;; find where this list begins
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4829 (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4830 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4831 (catch 'next
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4832 (beginning-of-line 0)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4833 (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
4834 (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
4835 (if (or (< ind1 ind)
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4836 (and (= ind1 ind)
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4837 (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
4838 (throw 'exit t)))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4839 ;; 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
4840 (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4841 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4842 (catch 'next
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4843 (beginning-of-line 2)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4844 (if (eobp) (throw 'exit nil))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4845 (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
4846 (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
4847 (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
4848 (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
4849 (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
4850 (if (not (match-beginning 3))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4851 (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
4852 (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
4853 (goto-char (match-beginning 3))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4854 (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
4855 (goto-line line)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4856 (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
4857
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4858 (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
4859 (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
4860
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4861 (defun org-outdent-item (arg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4862 "Outdent a local list item."
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4863 (interactive "p")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4864 (org-indent-item (- arg)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4865
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4866 (defun org-indent-item (arg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4867 "Indent a local list item."
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4868 (interactive "p")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4869 (unless (org-at-item-p)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4870 (error "Not on an item"))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4871 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4872 (let (beg end ind ind1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4873 (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
4874 (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
4875 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
4876 (org-beginning-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4877 (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
4878 (org-end-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4879 (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
4880 (goto-char beg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4881 (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
4882 (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
4883 (while (< (point) end)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4884 (beginning-of-line 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4885 (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
4886 (delete-region (point-at-bol) (point))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4887 (indent-to-column (+ ind1 arg))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4888 (beginning-of-line 2)))))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4889
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4890 ;;; Archiving
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4891
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4892 (defun org-archive-subtree (&optional find-done)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
4893 "Move the current subtree to the archive.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
4894 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
4895 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
4896 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
4897
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4898 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
4899 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
4900 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
4901 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
4902 this heading. "
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4903 (interactive "P")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4904 (if find-done
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4905 (org-archive-all-done)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4906 ;; 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
4907
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4908 (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
4909 (tr-org-todo-keywords org-todo-keywords)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4910 (tr-org-todo-interpretation org-todo-interpretation)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4911 (tr-org-done-string org-done-string)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4912 (tr-org-todo-regexp org-todo-regexp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4913 (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
4914 (this-buffer (current-buffer))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4915 file heading buffer level newfile-p)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4916 (if (string-match "\\(.*\\)::\\(.*\\)" org-archive-location)
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 (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
4919 (file-name-nondirectory buffer-file-name))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4920 heading (match-string 2 org-archive-location)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4921 (error "Invalid `org-archive-location'"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4922 (if (> (length file) 0)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4923 (setq newfile-p (not (file-exists-p file))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4924 buffer (find-file-noselect file))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4925 (setq buffer (current-buffer)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4926 (unless buffer
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4927 (error "Cannot access file \"%s\"" file))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4928 (if (and (> (length heading) 0)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4929 (string-match "^\\*+" heading))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4930 (setq level (match-end 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4931 (setq heading nil level 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4932 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4933 ;; 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
4934 ;; 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
4935 ;; which would lead to duplication of subtrees
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4936 (let (this-command) (org-copy-subtree))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4937 (set-buffer buffer)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4938 ;; 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
4939 (if (not (org-mode-p))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4940 ;; Force the mode for future visits.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4941 (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
4942 (call-interactively 'org-mode)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4943 (when newfile-p
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4944 (goto-char (point-max))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4945 (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
4946 (buffer-file-name this-buffer))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4947 ;; Force the TODO keywords of the original buffer
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4948 (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
4949 (org-todo-keywords tr-org-todo-keywords)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4950 (org-todo-interpretation tr-org-todo-interpretation)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4951 (org-done-string tr-org-done-string)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4952 (org-todo-regexp tr-org-todo-regexp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4953 (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
4954 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4955 (if heading
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4956 (progn
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4957 (if (re-search-forward
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4958 (concat "\\(^\\|\r\\)"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4959 (regexp-quote heading) "[ \t]*\\($\\|\r\\)")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4960 nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4961 (goto-char (match-end 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4962 ;; 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
4963 (goto-char (point-max))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4964 (or (bolp) (insert "\n"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4965 (insert "\n" heading "\n")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4966 (end-of-line 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4967 ;; Make the subtree visible
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4968 (show-subtree)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4969 (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
4970 (skip-chars-backward " \t\r\n")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4971 (and (looking-at "[ \t\r\n]*")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4972 (replace-match "\n\n")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4973 ;; 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
4974 (goto-char (point-max)) (insert "\n"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4975 ;; Paste
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4976 (org-paste-subtree (1+ level))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4977 ;; 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
4978 (if org-archive-mark-done
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4979 (org-todo (length org-todo-keywords)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4980 ;; Move cursor to right after the TODO keyword
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4981 (when org-archive-stamp-time
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4982 (beginning-of-line 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4983 (looking-at org-todo-line-regexp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4984 (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
4985 (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
4986 ;; 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
4987 (if (not (eq this-buffer buffer)) (save-buffer))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4988 ;; 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
4989 ;; 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
4990 (let (this-command) (org-cut-subtree))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4991 (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
4992 (message "Subtree archived %s"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4993 (if (eq this-buffer buffer)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4994 (concat "under heading: " heading)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4995 (concat "in file: " (abbreviate-file-name file)))))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4996
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4997 (defun org-archive-all-done (&optional tag)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4998 "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
4999 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
5000 it is on a headline, try all direct children.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5001 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
5002 (let ((re (concat "^\\*+ +" org-not-done-regexp)) re1
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5003 (rea (concat ".*:" org-archive-tag ":"))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5004 (begm (make-marker))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5005 (endm (make-marker))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5006 (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
5007 "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
5008 beg end (cntarch 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5009 (if (org-on-heading-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5010 (progn
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5011 (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
5012 (make-string
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5013 (1+ (- (match-end 0) (match-beginning 0)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5014 ?*))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5015 " "))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5016 (move-marker begm (point))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5017 (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
5018 (setq re1 "^* ")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5019 (move-marker begm (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5020 (move-marker endm (point-max)))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
5021 (save-excursion
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5022 (goto-char begm)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5023 (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
5024 (setq beg (match-beginning 0)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5025 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
5026 (goto-char beg)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5027 (if (re-search-forward re end t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5028 (goto-char end)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5029 (goto-char beg)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5030 (if (and (or (not tag) (not (looking-at rea)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5031 (y-or-n-p question))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5032 (progn
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5033 (if tag
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5034 (org-toggle-tag org-archive-tag 'on)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5035 (org-archive-subtree))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5036 (setq cntarch (1+ cntarch)))
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
5037 (goto-char end)))))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5038 (message "%d trees archived" cntarch)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5039
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5040 (defun org-cycle-hide-archived-subtrees (state)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5041 "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
5042 (when (and (not org-cycle-open-archived-trees)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5043 (not (memq state '(overview folded))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5044 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5045 (let* ((globalp (memq state '(contents all)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5046 (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
5047 (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
5048 (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
5049 (goto-char beg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5050 (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
5051 (message (substitute-command-keys
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5052 "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
5053
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5054 (defun org-force-cycle-archived ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5055 "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
5056 (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5057 (setq this-command 'org-cycle)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5058 (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
5059 (call-interactively 'org-cycle)))
71449
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-hide-archived-subtrees (beg end)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5062 "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
5063 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5064 (let* ((re (concat ":" org-archive-tag ":")))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5065 (goto-char beg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5066 (while (re-search-forward re end t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5067 (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
5068 (org-end-of-subtree t)))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5069
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5070 (defun org-toggle-tag (tag &optional onoff)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5071 "Toggle the tag TAG for the current line.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5072 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
5073 (unless (org-on-heading-p) (error "Not on headling"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5074 (let (res current)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5075 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5076 (beginning-of-line)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5077 (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
5078 (point-at-eol) t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5079 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5080 (setq current (match-string 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5081 (replace-match ""))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5082 (setq current ""))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5083 (setq current (nreverse (org-split-string current ":")))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5084 (cond
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5085 ((eq onoff 'on)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5086 (setq res t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5087 (or (member tag current) (push tag current)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5088 ((eq onoff 'off)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5089 (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
5090 (t (if (member tag current)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5091 (setq current (delete tag current))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5092 (setq res t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5093 (push tag current))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5094 (end-of-line 1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5095 (when current
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5096 (insert " :" (mapconcat 'identity (nreverse current) ":") ":"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5097 (org-set-tags nil t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5098 res))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5099
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5100 (defun org-toggle-archive-tag (&optional arg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5101 "Toggle the archive tag for the current headline.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5102 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
5103 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
5104 (interactive "P")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5105 (if arg
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5106 (org-archive-all-done 'tag)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5107 (let (set)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5108 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5109 (org-back-to-heading t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5110 (setq set (org-toggle-tag org-archive-tag))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5111 (when set (hide-subtree)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5112 (and set (beginning-of-line 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5113 (message "Subtree %s" (if set "archived" "unarchived")))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5114
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5115 (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
5116 (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
5117 (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
5118 (defun org-prepare-agenda ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5119 (if org-agenda-multi
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5120 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5121 (setq buffer-read-only nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5122 (goto-char (point-max))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5123 (unless (= (point) 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5124 (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
5125 (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
5126 (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
5127 (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
5128 (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
5129 (awin (get-buffer-window abuf)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5130 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5131 ((equal (current-buffer) abuf) nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5132 (awin (select-window awin))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5133 ((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
5134 ((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
5135 (switch-to-buffer abuf))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5136 ((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
5137 (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
5138 ((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
5139 (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
5140 ((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
5141 (delete-other-windows)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5142 (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
5143 (setq buffer-read-only nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5144 (erase-buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5145 (org-agenda-mode))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5146 (setq buffer-read-only nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5147
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5148 (defun org-finalize-agenda ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5149 "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
5150 (unless org-agenda-multi
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5151 (org-agenda-align-tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5152 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5153 (let ((buffer-read-only))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5154 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5155 (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
5156 (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
5157 '(face org-link))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5158 (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
5159
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5160 (defun org-prepare-agenda-buffers (files)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5161 "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
5162 (interactive)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5163 (let ((pa '(:org-archived t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5164 (pc '(:org-comment t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5165 (pall '(:org-archived t :org-comment t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5166 (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
5167 bmp file re)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5168 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5169 (while (setq file (pop files))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5170 (org-check-agenda-file file)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5171 (set-buffer (org-get-agenda-file-buffer file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5172 (widen)
71652
4df24233cf1e (org-agenda-get-todos): Skip subtree also if entry is
Carsten Dominik <dominik@science.uva.nl>
parents: 71567
diff changeset
5173 (setq bmp (buffer-modified-p))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5174 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5175 (remove-text-properties (point-min) (point-max) pall)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5176 (when org-agenda-skip-archived-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5177 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5178 (while (re-search-forward rea nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5179 (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
5180 (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
5181 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5182 (setq re (concat "^\\*+ +" org-comment-string "\\>"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5183 (while (re-search-forward re nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5184 (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
5185 (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
5186 (set-buffer-modified-p bmp)))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5187
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5188 (defun org-agenda-skip ()
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5189 "Throw to `:skip' in places that should be skipped."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5190 (let ((p (point-at-bol)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5191 (and org-agenda-skip-archived-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5192 (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
5193 (org-end-of-subtree t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5194 (throw :skip t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5195 (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
5196 (org-end-of-subtree t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5197 (throw :skip t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5198 (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
5199
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5200 (defun org-agenda-toggle-archive-tag ()
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5201 "Toggle the archive tag for the current entry."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5202 (interactive)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5203 (org-agenda-check-no-diary)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5204 (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
5205 (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
5206 (org-agenda-error)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5207 (buffer (marker-buffer hdmarker))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5208 (pos (marker-position hdmarker))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5209 (buffer-read-only nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5210 newhead)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5211 (with-current-buffer buffer
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5212 (widen)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5213 (goto-char pos)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5214 (org-show-context 'agenda)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5215 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5216 (and (outline-next-heading)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5217 (org-flag-heading nil))) ; show the next heading
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5218 (call-interactively 'org-toggle-archive-tag)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5219 (end-of-line 1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5220 (setq newhead (org-get-heading)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5221 (org-agenda-change-all-lines newhead hdmarker)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5222 (beginning-of-line 1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5223
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5224 ;;; Dynamic blocks
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5225
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5226 (defun org-find-dblock (name)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5227 "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
5228 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
5229 (let (pos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5230 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5231 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5232 (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
5233 nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5234 (match-beginning 0))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5235 (if pos (goto-char pos))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5236 pos))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5237
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5238 (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
5239 "^#\\+BEGIN:[ \t]+\\(\\S-+\\)\\([ \t]+\\(.*\\)\\)?"
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5240 "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
5241
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5242 (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
5243 "Matches the end of a dyhamic block.")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5244
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5245 (defun org-create-dblock (plist)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5246 "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
5247 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
5248 (unless (bolp) (newline))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5249 (let ((name (plist-get plist :name)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5250 (insert "#+BEGIN: " name)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5251 (while plist
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5252 (if (eq (car plist) :name)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5253 (setq plist (cddr plist))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5254 (insert " " (prin1-to-string (pop plist)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5255 (insert "\n\n#+END:\n")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5256 (beginning-of-line -2)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5257
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5258 (defun org-prepare-dblock ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5259 "Prepare dynamic block for refresh.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5260 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
5261 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
5262 (unless (looking-at org-dblock-start-re)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5263 (error "Not at a dynamic block"))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5264 (let* ((begdel (1+ (match-end 0)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5265 (name (match-string 1))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5266 (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
5267 (read (concat "(" (match-string 3) ")")))))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5268 (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
5269 (error "Dynamic block not terminated"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5270 (delete-region begdel (match-beginning 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5271 (goto-char begdel)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5272 (open-line 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5273 params))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5274
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5275 (defun org-map-dblocks (&optional command)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5276 "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
5277 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
5278 (let ((cmd (or command 'org-update-dblock))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5279 pos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5280 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5281 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5282 (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
5283 (goto-char (setq pos (match-beginning 0)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5284 (condition-case nil
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5285 (funcall cmd)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5286 (error (message "Error during update of dynamic block")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5287 (goto-char pos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5288 (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
5289 (error "Dynamic block not terminated"))))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5290
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5291 (defun org-dblock-update (&optional arg)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5292 "User command for updating dynamic blocks.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5293 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
5294 blocks in the buffer."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5295 (interactive "P")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5296 (if arg
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5297 (org-update-all-dblocks)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5298 (or (looking-at org-dblock-start-re)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5299 (org-beginning-of-dblock))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5300 (org-update-dblock)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5301
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5302 (defun org-update-dblock ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5303 "Update the dynamic block at point
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5304 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
5305 the correct writing function."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5306 (let* ((pos (point))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5307 (params (org-prepare-dblock))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5308 (name (plist-get params :name))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5309 (cmd (intern (concat "org-dblock-write:" name))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5310 (funcall cmd params)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5311 (goto-char pos)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5312
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5313 (defun org-beginning-of-dblock ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5314 "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
5315 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
5316 (let ((pos (point))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5317 beg)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5318 (end-of-line 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5319 (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
5320 (setq beg (match-beginning 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5321 (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
5322 (> (match-end 0) pos))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5323 (goto-char beg)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5324 (goto-char pos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5325 (error "Not in a dynamic block"))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5326
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5327 (defun org-update-all-dblocks ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5328 "Update all dynamic blocks in the buffer.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5329 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
5330 (when (org-mode-p)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5331 (org-map-dblocks 'org-update-dblock)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5332
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
5333
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5334 ;;; Completion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5335
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5336 (defun org-complete (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5337 "Perform completion on word at point.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5338 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
5339 `org-todo-keywords'.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5340 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
5341 that are supported for HTML support.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5342 If the current word is preceded by \"#+\", completes special words for
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5343 setting file options.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5344 In the line after \"#+STARTUP:, complete valid keywords.\"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5345 At all other locations, this simply calls `ispell-complete-word'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5346 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5347 (catch 'exit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5348 (let* ((end (point))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5349 (beg1 (save-excursion
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
5350 (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
5351 (point)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5352 (beg (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5353 (skip-chars-backward "a-zA-Z0-9_:$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5354 (point)))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
5355 (confirm (lambda (x) (stringp (car x))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5356 (camel (equal (char-before beg) ?*))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5357 (tag (equal (char-before beg1) ?:))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5358 (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
5359 (link (equal (char-before beg) ?\[))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5360 (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
5361 beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5362 "#+"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5363 (startup (string-match "^#\\+STARTUP:.*"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5364 (buffer-substring (point-at-bol) (point))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5365 (completion-ignore-case opt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5366 (type nil)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5367 (tbl nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5368 (table (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5369 (opt
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5370 (setq type :opt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5371 (mapcar (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5372 (string-match "^#\\+\\(\\([A-Z_]+:?\\).*\\)" x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5373 (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
5374 (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
5375 (startup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5376 (setq type :startup)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5377 org-startup-options)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5378 (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
5379 org-link-abbrev-alist))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5380 (texp
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5381 (setq type :tex)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5382 org-html-entities)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5383 ((string-match "\\`\\*+[ \t]*\\'"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5384 (buffer-substring (point-at-bol) beg))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5385 (setq type :todo)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5386 (mapcar 'list org-todo-keywords))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5387 (camel
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5388 (setq type :camel)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5389 (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5390 (goto-char (point-min))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5391 (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
5392 (push (list
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
5393 (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
5394 (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
5395 (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
5396 (match-string 3) t)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5397 tbl)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5398 tbl)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5399 (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
5400 (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
5401 (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
5402 (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
5403 (completion (try-completion pattern table confirm)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5404 (cond ((eq completion t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5405 (if (equal type :opt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5406 (insert (substring (cdr (assoc (upcase pattern) table))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5407 (length pattern)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5408 ((null completion)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5409 (message "Can't find completion for \"%s\"" pattern)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5410 (ding))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5411 ((not (string= pattern completion))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5412 (delete-region beg end)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5413 (if (string-match " +$" completion)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5414 (setq completion (replace-match "" t t completion)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5415 (insert completion)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5416 (if (get-buffer-window "*Completions*")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5417 (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
5418 (if (assoc completion table)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5419 (if (eq type :todo) (insert " ")
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5420 (if (eq type :tag) (insert ":"))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5421 (if (and (equal type :opt) (assoc completion table))
65583
703495630901 Message format spec fixes (2)
Deepak Goel <deego@gnufans.org>
parents: 65264
diff changeset
5422 (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
5423 "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
5424 (t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5425 (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
5426 (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
5427 'string<)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5428 (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
5429 (condition-case nil
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
5430 ;; 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
5431 (display-completion-list list pattern)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
5432 (error (display-completion-list list)))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5433 (message "Making completion list...%s" "done"))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5434
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5435 ;;; Comments, TODO and DEADLINE
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5436
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5437 (defun org-toggle-comment ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5438 "Change the COMMENT state of an entry."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5439 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5440 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5441 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5442 (if (looking-at (concat outline-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5443 "\\( +\\<" org-comment-string "\\>\\)"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5444 (replace-match "" t t nil 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5445 (if (looking-at outline-regexp)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5446 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5447 (goto-char (match-end 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5448 (insert " " org-comment-string))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5449
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5450 (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
5451 "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
5452 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
5453 this is nil.")
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5454
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5455 (defun org-todo (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5456 "Change the TODO state of an item.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5457 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
5458 like
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5459 *** TODO Write paper
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5460 *** DONE Call mom
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5461
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5462 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
5463 By default the available states are \"TODO\" and \"DONE\".
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5464 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
5465 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
5466 DONE are present, add TODO at the beginning of the heading.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5467
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5468 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
5469 prefix arg, switch to that state."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5470 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5471 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5472 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5473 (if (looking-at outline-regexp) (goto-char (match-end 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5474 (or (looking-at (concat " +" org-todo-regexp " *"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5475 (looking-at " *"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5476 (let* ((this (match-string 1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5477 (completion-ignore-case t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5478 (member (member this org-todo-keywords))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5479 (tail (cdr member))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5480 (state (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5481 ((equal arg '(4))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5482 ;; Read a state with completion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5483 (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
5484 org-todo-keywords)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5485 nil t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5486 ((eq arg 'right)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5487 (if this
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5488 (if tail (car tail) nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5489 (car org-todo-keywords)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5490 ((eq arg 'left)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5491 (if (equal member org-todo-keywords)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5492 nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5493 (if this
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5494 (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
5495 org-todo-keywords)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5496 org-done-string)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5497 (arg
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5498 ;; user requests a specific state
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5499 (nth (1- (prefix-numeric-value arg))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5500 org-todo-keywords))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5501 ((null member) (car org-todo-keywords))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5502 ((null tail) nil) ;; -> first entry
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5503 ((eq org-todo-interpretation 'sequence)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5504 (car tail))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5505 ((memq org-todo-interpretation '(type priority))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5506 (if (eq this-command last-command)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5507 (car tail)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5508 (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
5509 (t nil)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5510 (next (if state (concat " " state " ") " ")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5511 (replace-match next t t)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5512 (setq org-last-todo-state-is-todo
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5513 (not (equal state org-done-string)))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
5514 (when org-log-done
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
5515 (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
5516 (org-add-planning-info 'closed (org-current-time) 'scheduled)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
5517 (if (not this)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5518 (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
5519 ;; Fixup tag positioning
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
5520 (and org-auto-align-tags (org-set-tags nil t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5521 (run-hooks 'org-after-todo-state-change-hook)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5522 ;; Fixup cursor location if close to the keyword
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5523 (if (and (outline-on-heading-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5524 (not (bolp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5525 (save-excursion (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5526 (looking-at org-todo-line-regexp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5527 (< (point) (+ 2 (or (match-end 2) (match-end 1)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5528 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5529 (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
5530 (just-one-space))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5531
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5532 (defun org-show-todo-tree (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5533 "Make a compact tree which shows all headlines marked with TODO.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5534 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
5535 headlines above the match.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5536 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
5537 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
5538 of `org-todo-keywords'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5539 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5540 (let ((case-fold-search nil)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5541 (kwd-re
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5542 (cond ((null arg) org-not-done-regexp)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5543 ((equal arg '(4)) org-todo-regexp)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5544 ((<= (prefix-numeric-value arg) (length org-todo-keywords))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5545 (regexp-quote (nth (1- (prefix-numeric-value arg))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5546 org-todo-keywords)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5547 (t (error "Invalid prefix argument: %s" arg)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5548 (message "%d TODO entries found"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5549 (org-occur (concat "^" outline-regexp " +" kwd-re )))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5550
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5551 (defun org-deadline ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5552 "Insert the DEADLINE: string to make a deadline.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5553 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
5554 to modify it to the correct date."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5555 (interactive)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5556 (org-add-planning-info 'deadline nil 'closed))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5557
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5558 (defun org-schedule ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5559 "Insert the SCHEDULED: string to schedule a TODO item.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5560 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
5561 to modify it to the correct date."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5562 (interactive)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5563 (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
5564
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5565 (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
5566 "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
5567 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
5568 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
5569 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
5570 be removed."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5571 (interactive)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5572 (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
5573 (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
5574 (member what '(scheduled deadline)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5575 (insert
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5576 (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
5577 (org-insert-time-stamp time)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5578 (setq what nil))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5579 (save-excursion
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5580 (save-restriction
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5581 (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
5582 (org-back-to-heading t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5583 (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
5584 (goto-char (match-end 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5585 (setq col (current-column))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5586 (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
5587 (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
5588 (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
5589 "[^\r\n]*"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5590 (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
5591 (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
5592 (insert "\n")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5593 (backward-char 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5594 (narrow-to-region (point) (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5595 (indent-to-column col))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5596 ;; 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
5597 (setq list (cons what remove))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5598 (while list
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5599 (setq elt (pop list))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5600 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5601 (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
5602 (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
5603 (and (eq elt 'deadline)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5604 (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
5605 (and (eq elt 'closed)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5606 (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
5607 (replace-match "")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5608 (if (looking-at " +") (replace-match ""))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5609 (goto-char (point-max))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5610 (when what
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5611 (insert
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5612 (if (not (equal (char-before) ?\ )) " " "")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5613 (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
5614 ((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
5615 ((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
5616 " ")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5617 (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
5618 (end-of-line 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5619 (org-add-log-maybe 'done))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5620 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5621 (widen)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5622 (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
5623 (replace-match ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5624 ts))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5625
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5626 (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
5627 (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
5628 (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
5629
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5630 (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
5631 (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
5632 (memq purpose org-log-done))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5633 (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
5634 (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
5635 (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
5636
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5637 (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
5638 "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
5639 (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
5640 (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
5641 (delete-other-windows)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5642 (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
5643 (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
5644 (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
5645 (erase-buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5646 (org-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5647 (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
5648 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5649 ((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
5650 ((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
5651 (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
5652 (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
5653
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5654 (defun org-store-log-note ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5655 "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
5656 (let ((txt (buffer-string))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5657 (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
5658 lines ind)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5659 (kill-buffer (current-buffer))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5660 (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
5661 (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
5662 (when (string-match "\\S-" txt)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5663 (if (string-match "\\s-+\\'" txt)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5664 (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
5665 (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
5666 (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
5667 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5668 (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
5669 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5670 (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
5671 (if (not (bolp)) (newline))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5672 (indent-relative t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5673 (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
5674 (insert " - " (pop lines))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5675 (while lines
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5676 (insert "\n" ind (pop lines))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5677 (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
5678
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5679 (defvar org-occur-highlights nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5680 (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
5681
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5682 (defun org-occur (regexp &optional keep-previous callback)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5683 "Make a compact tree which shows all matches of REGEXP.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5684 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
5685 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
5686 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
5687 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
5688 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
5689 command.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5690 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
5691 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
5692 (interactive "sRegexp: \nP")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5693 (or keep-previous (org-remove-occur-highlights nil nil t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5694 (let ((cnt 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5695 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5696 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5697 (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
5698 (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
5699 ;; hide everything
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5700 (org-overview))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5701 (while (re-search-forward regexp nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5702 (when (or (not callback)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5703 (save-match-data (funcall callback)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5704 (setq cnt (1+ cnt))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5705 (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
5706 (org-show-context 'occur-tree))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5707 (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
5708 (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
5709 nil 'local))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5710 (unless org-sparse-tree-open-archived-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5711 (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
5712 (run-hooks 'org-occur-hook)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5713 (if (interactive-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5714 (message "%d match(es) for regexp %s" cnt regexp))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5715 cnt))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5716
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5717 (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
5718 "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
5719 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
5720 `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
5721 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
5722 (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
5723 (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
5724 (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
5725 (catch 'exit
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5726 ;; Show heading or entry text
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5727 (if heading-p
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5728 (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
5729 (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
5730 (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
5731 (when following-p
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5732 ;; 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
5733 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5734 (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
5735 (org-flag-heading nil))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5736 (when hierarchy-p
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5737 ;; 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
5738 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5739 (while (and (condition-case nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5740 (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
5741 (error nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5742 (not (bobp)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5743 (org-flag-heading nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5744 (when siblings
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5745 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5746 (while (org-goto-sibling) (org-flag-heading nil)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5747 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5748 (while (org-goto-sibling 'previous)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5749 (org-flag-heading nil))))))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5750
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5751 (defun org-reveal (&optional siblings)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5752 "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
5753 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
5754 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
5755 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
5756
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5757 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
5758 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
5759 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
5760 (interactive "P")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5761 (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
5762 (org-show-following-heading t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5763 (org-show-context nil siblings)))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5764
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5765 ;; Overlay compatibility functions
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5766 (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
5767 (if (featurep 'xemacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5768 (make-extent beg end buffer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5769 (make-overlay beg end buffer)))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5770 (defun org-delete-overlay (ovl)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5771 (if (featurep 'xemacs) (delete-extent ovl) (delete-overlay ovl)))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5772 (defun org-detatch-overlay (ovl)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5773 (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
5774 (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
5775 (if (featurep 'xemacs)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5776 (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
5777 (move-overlay ovl beg end buffer)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5778 (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
5779 (if (featurep 'xemacs)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5780 (set-extent-property ovl prop value)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5781 (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
5782 (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
5783 "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
5784 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5785 (let ((gl (make-glyph text)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5786 (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
5787 (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
5788 (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
5789 (overlay-put ovl 'display text)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5790 (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
5791 (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
5792 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5793 (extent-property ovl prop)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5794 (overlay-get ovl prop)))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5795 (defun org-overlays-at (pos)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5796 (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
5797 (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
5798 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5799 (extent-list nil start end)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5800 (overlays-in start end)))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5801 (defun org-overlay-start (o)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5802 (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
5803 (defun org-overlay-end (o)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5804 (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
5805
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5806 (defun org-highlight-new-match (beg end)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5807 "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
5808 (let ((ov (org-make-overlay beg end)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5809 (org-overlay-put ov 'face 'secondary-selection)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5810 (push ov org-occur-highlights)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5811
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5812 (defvar org-inhibit-highlight-removal nil)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5813 (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
5814 "Remove the occur highlights from the buffer.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5815 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
5816 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
5817 (interactive)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5818 (unless org-inhibit-highlight-removal
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5819 (mapc 'org-delete-overlay org-occur-highlights)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5820 (setq org-occur-highlights nil)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5821 (unless noremove
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5822 (remove-hook 'before-change-functions
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5823 '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
5824
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5825 ;;; Priorities
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5826
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5827 (defvar org-priority-regexp ".*?\\(\\[#\\([A-Z]\\)\\] ?\\)"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5828 "Regular expression matching the priority indicator.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5829
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5830 (defvar org-remove-priority-next-time nil)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5831
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5832 (defun org-priority-up ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5833 "Increase the priority of the current item."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5834 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5835 (org-priority 'up))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5836
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5837 (defun org-priority-down ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5838 "Decrease the priority of the current item."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5839 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5840 (org-priority 'down))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5841
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5842 (defun org-priority (&optional action)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5843 "Change the priority of an item by ARG.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5844 ACTION can be set, up, or down."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5845 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5846 (setq action (or action 'set))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5847 (let (current new news have remove)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5848 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5849 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5850 (if (looking-at org-priority-regexp)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5851 (setq current (string-to-char (match-string 2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5852 have t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5853 (setq current org-default-priority))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5854 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5855 ((eq action 'set)
65583
703495630901 Message format spec fixes (2)
Deepak Goel <deego@gnufans.org>
parents: 65264
diff changeset
5856 (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
5857 (setq new (read-char-exclusive))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5858 (cond ((equal new ?\ ) (setq remove t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5859 ((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
5860 (error "Priority must be between `%c' and `%c'"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5861 ?A org-lowest-priority))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5862 ((eq action 'up)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5863 (setq new (1- current)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5864 ((eq action 'down)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5865 (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
5866 (t (error "Invalid action")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5867 (setq new (min (max ?A (upcase new)) org-lowest-priority))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5868 (setq news (format "%c" new))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5869 (if have
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5870 (if remove
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5871 (replace-match "" t t nil 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5872 (replace-match news t t nil 2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5873 (if remove
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5874 (error "No priority cookie found in line")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5875 (looking-at org-todo-line-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5876 (if (match-end 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5877 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5878 (goto-char (match-end 2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5879 (insert " [#" news "]"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5880 (goto-char (match-beginning 3))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5881 (insert "[#" news "] ")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5882 (if remove
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5883 (message "Priority removed")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5884 (message "Priority of current item set to %s" news))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5885
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5886
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5887 (defun org-get-priority (s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5888 "Find priority cookie and return priority."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5889 (save-match-data
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5890 (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
5891 (* 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
5892 (* 1000 (- org-lowest-priority
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5893 (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
5894
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5895 ;;; Timestamps
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5896
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5897 (defvar org-last-changed-timestamp nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5898
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5899 (defun org-time-stamp (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5900 "Prompt for a date/time and insert a time stamp.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5901 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
5902 with a prefix argument, the time stamp will contain date and time.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5903 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
5904 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
5905 So if you press just return without typing anything, the time stamp
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5906 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
5907 at the cursor, it will be modified."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5908 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5909 (let (org-time-was-given time)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5910 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5911 ((and (org-at-timestamp-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5912 (eq last-command 'org-time-stamp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5913 (eq this-command 'org-time-stamp))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5914 (insert "--")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5915 (setq time (let ((this-command this-command))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5916 (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
5917 (org-insert-time-stamp time (or org-time-was-given arg)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5918 ((org-at-timestamp-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5919 (setq time (let ((this-command this-command))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5920 (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
5921 (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
5922 (replace-match "")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5923 (setq org-last-changed-timestamp
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5924 (org-insert-time-stamp time (or org-time-was-given arg))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5925 (message "Timestamp updated"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5926 (t
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5927 (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
5928 (org-read-date arg 'totime)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5929 (org-insert-time-stamp time (or org-time-was-given arg))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5930
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
5931 (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
5932 "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
5933 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
5934 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
5935 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
5936 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
5937 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5938 (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
5939 (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
5940 (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
5941
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5942 (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
5943 (org-overlay-put org-date-ovl 'face 'org-warning)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5944 (org-detatch-overlay org-date-ovl)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5945
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5946 (defun org-read-date (&optional with-time to-time from-string)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5947 "Read a date and make things smooth for the user.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5948 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
5949 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
5950 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
5951 hour and minute. For example,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5952 3-2-5 --> 2003-02-05
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5953 feb 15 --> currentyear-02-15
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5954 sep 12 9 --> 2009-09-12
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5955 12:45 --> today 12:45
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5956 22 sept 0:34 --> currentyear-09-22 0:34
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5957 12 --> currentyear-currentmonth-12
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5958 Fri --> nearest Friday (today or later)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5959 etc.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5960 The function understands only English month and weekday abbreviations,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5961 but this can be configured with the variables `parse-time-months' and
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5962 `parse-time-weekdays'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5963
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5964 While prompting, a calendar is popped up - you can also select the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5965 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
5966 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
5967 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
5968 \(setq org-popup-calendar-for-date-prompt nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5969
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5970 With optional argument TO-TIME, the date will immediately be converted
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5971 to an internal time.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5972 With an optional argument WITH-TIME, the prompt will suggest to also
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5973 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
5974 enter a time, and this function will inform the calling routine about
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5975 this change. The calling routine may then choose to change the format
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5976 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
5977 (require 'parse-time)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5978 (let* ((org-time-stamp-rounding-minutes
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5979 (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
5980 (ct (org-current-time))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5981 (default-time
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5982 ;; 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
5983 ;; the range start.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5984 (if (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5985 (re-search-backward
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
5986 (concat org-ts-regexp "--?-?\\=") ; 1-3 minuses
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5987 (- (point) 20) t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5988 (apply
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5989 'encode-time
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5990 (mapcar (lambda(x) (or x 0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5991 (parse-time-string (match-string 1))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5992 ct))
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
5993 (calendar-move-hook nil)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5994 (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
5995 (view-calendar-holidays-initially nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5996 (timestr (format-time-string
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5997 (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
5998 (prompt (format "YYYY-MM-DD [%s]: " timestr))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5999 ans ans1 ans2
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6000 second minute hour day month year tl wday wday1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6001
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6002 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6003 (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
6004 (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
6005 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6006 (save-window-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6007 (calendar)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6008 (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
6009 (calendar-absolute-from-gregorian
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6010 (calendar-current-date))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6011 (org-eval-in-calendar nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6012 (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
6013 (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
6014 (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
6015 (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
6016 (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
6017 'org-calendar-select-mouse)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6018 (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
6019 'org-calendar-select-mouse)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6020 (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
6021 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6022 (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
6023 (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
6024 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6025 (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
6026 (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
6027 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6028 (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
6029 (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
6030 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6031 (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
6032 (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
6033 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6034 (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
6035 (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
6036 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6037 (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
6038 (define-key minibuffer-local-map ">"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6039 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6040 (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
6041 (define-key minibuffer-local-map "<"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6042 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6043 (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
6044 (unwind-protect
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6045 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6046 (use-local-map map)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6047 (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
6048 (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
6049 (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
6050 (use-local-map old-map))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6051 (t ; Naked prompt only
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6052 (setq ans (read-string prompt "" nil timestr))))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6053 (org-detatch-overlay org-date-ovl)
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 (if (string-match
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6056 "^ *\\(\\([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
6057 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6058 (setq year (if (match-end 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6059 (string-to-number (match-string 2 ans))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6060 (string-to-number (format-time-string "%Y")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6061 month (string-to-number (match-string 3 ans))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6062 day (string-to-number (match-string 4 ans)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6063 (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
6064 (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
6065 t nil ans))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6066 (setq tl (parse-time-string ans)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6067 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
6068 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
6069 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
6070 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
6071 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
6072 second (or (nth 0 tl) 0)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6073 wday (nth 6 tl))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6074 (when (and wday (not (nth 3 tl)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6075 ;; 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
6076 ;; on or after the derived date.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6077 (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
6078 (unless (equal wday wday1)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6079 (setq day (+ day (% (- wday wday1 -7) 7)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6080 (if (and (boundp 'org-time-was-given)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6081 (nth 2 tl))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6082 (setq org-time-was-given t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6083 (if (< year 100) (setq year (+ 2000 year)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6084 (if to-time
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6085 (encode-time second minute hour day month year)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6086 (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
6087 (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
6088 (format "%04d-%02d-%02d" year month day)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6089
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6090 (defun org-eval-in-calendar (form)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6091 "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
6092 Also, store the cursor date in variable ans2."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6093 (let ((sw (selected-window)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6094 (select-window (get-buffer-window "*Calendar*"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6095 (eval form)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6096 (when (calendar-cursor-to-date)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6097 (let* ((date (calendar-cursor-to-date))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6098 (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
6099 (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
6100 (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
6101 (select-window sw)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6102
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6103 (defun org-calendar-select ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6104 "Return to `org-read-date' with the date currently selected.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6105 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
6106 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6107 (when (calendar-cursor-to-date)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6108 (let* ((date (calendar-cursor-to-date))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6109 (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
6110 (setq ans1 (format-time-string "%Y-%m-%d" time)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6111 (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
6112
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6113 (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
6114 "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
6115 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
6116 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
6117 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
6118 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
6119 stamp.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6120 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
6121 (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
6122 stamp)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6123 (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
6124 (insert (or pre ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6125 (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
6126 (insert (or post ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6127 stamp))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6128
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6129 (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
6130 "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
6131 (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6132 (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
6133 (unless org-display-custom-times
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6134 (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
6135 (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
6136 (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
6137 (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
6138 (remove-text-properties
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6139 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
6140 '(display t))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6141 (set-buffer-modified-p bmp)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6142 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6143 (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
6144 (org-restart-font-lock)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6145 (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
6146 (if org-display-custom-times
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6147 (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
6148 (message "Time stamp overlays removed")))
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-display-custom-time (beg end)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6151 "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
6152 (let* ((t1 (save-match-data
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6153 (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
6154 (w1 (- end beg))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6155 (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
6156 (inactive (= (char-before (1- beg)) ?\[))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6157 (tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6158 (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
6159 (str (org-add-props
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6160 (format-time-string
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6161 (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
6162 nil 'mouse-face 'highlight))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6163 (w2 (length str)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6164 (if (not (= w2 w1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6165 (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
6166 (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
6167 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6168 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6169 (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
6170 (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
6171 (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
6172
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6173 (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
6174 "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
6175 (- (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
6176 (time-to-days (current-time))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6177
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6178 (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
6179 "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
6180 (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
6181 (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
6182 (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
6183
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6184 (defun org-calendar-select-mouse (ev)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6185 "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
6186 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
6187 (interactive "e")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6188 (mouse-set-point ev)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6189 (when (calendar-cursor-to-date)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6190 (let* ((date (calendar-cursor-to-date))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6191 (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
6192 (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
6193 (if (active-minibuffer-window) (exit-minibuffer))))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6194
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6195 (defun org-check-deadlines (ndays)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6196 "Check if there are any deadlines due or past due.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6197 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
6198 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
6199 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
6200 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
6201 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6202 (let* ((org-warn-days
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6203 (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6204 ((equal ndays '(4)) 100000)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6205 (ndays (prefix-numeric-value ndays))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6206 (t org-deadline-warning-days)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6207 (case-fold-search nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6208 (regexp (concat "\\<" org-deadline-string " *<\\([^>]+\\)>"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6209 (callback
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6210 (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
6211
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6212 (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
6213 (org-occur regexp nil callback)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6214 org-warn-days)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6215
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6216 (defun org-evaluate-time-range (&optional to-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6217 "Evaluate a time range by computing the difference between start and end.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6218 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
6219 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
6220 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
6221 next column.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6222 For time difference computation, a year is assumed to be exactly 365
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6223 days in order to avoid rounding problems."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6224 (interactive "P")
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6225 (or
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6226 (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
6227 (save-excursion
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6228 (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
6229 (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
6230 (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
6231 (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
6232 (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
6233 (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
6234 (ts2 (match-string 2))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6235 (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
6236 (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
6237 (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
6238 (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
6239 (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
6240 (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
6241 (diff (abs (- t2 t1)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6242 (negative (< (- t2 t1) 0))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6243 ;; (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
6244 (ds (* 24 60 60))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6245 (hs (* 60 60))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6246 (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
6247 (fy1 "%dy %dd")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6248 (fd "%dd %02d:%02d")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6249 (fd1 "%dd")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6250 (fh "%02d:%02d")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6251 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
6252 (if havetime
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6253 (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
6254 y 0
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6255 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
6256 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
6257 m (floor (/ diff 60)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6258 (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
6259 y 0
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6260 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
6261 h 0 m 0))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6262 (if (not to-buffer)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6263 (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
6264 (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
6265 (goto-char match-end)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6266 (setq align t)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6267 (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
6268 (if (looking-at
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6269 "\\( *-? *[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
6270 (replace-match ""))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6271 (if negative (insert " -"))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6272 (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
6273 (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
6274 (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
6275 (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
6276 (message "Time difference inserted")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6277
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6278 (defun org-make-tdiff-string (y d h m)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6279 (let ((fmt "")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6280 (l nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6281 (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
6282 l (push y l)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6283 (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
6284 l (push d l)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6285 (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
6286 l (push h l)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6287 (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
6288 l (push m l)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6289 (apply 'format fmt (nreverse l))))
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-time-string-to-time (s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6292 (apply 'encode-time (org-parse-time-string s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6293
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
6294 (defun org-parse-time-string (s &optional nodefault)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6295 "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
6296 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
6297 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
6298 hour and minute fields will be nil if not given."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6299 (if (string-match org-ts-regexp1 s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6300 (list 0
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6301 (if (or (match-beginning 8) (not nodefault))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6302 (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
6303 (if (or (match-beginning 7) (not nodefault))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6304 (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
6305 (string-to-number (match-string 4 s))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6306 (string-to-number (match-string 3 s))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6307 (string-to-number (match-string 2 s))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6308 nil nil nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6309 (make-list 9 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6310
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6311 (defun org-timestamp-up (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6312 "Increase the date item at the cursor by one.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6313 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
6314 the day, change that.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6315 With prefix ARG, change by that many units."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6316 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6317 (org-timestamp-change (prefix-numeric-value arg)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6318
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6319 (defun org-timestamp-down (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6320 "Decrease the date item at the cursor by one.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6321 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
6322 the day, change that.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6323 With prefix ARG, change by that many units."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6324 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6325 (org-timestamp-change (- (prefix-numeric-value arg))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6326
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6327 (defun org-timestamp-up-day (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6328 "Increase the date in the time stamp by one day.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6329 With prefix ARG, change that many days."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6330 (interactive "p")
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
6331 (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
6332 (org-on-heading-p))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6333 (org-todo 'up)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6334 (org-timestamp-change (prefix-numeric-value arg) 'day)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6335
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6336 (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
6337 "Decrease the date in the time stamp by one day.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6338 With prefix ARG, change that many days."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6339 (interactive "p")
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
6340 (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
6341 (org-on-heading-p))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6342 (org-todo 'down)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6343 (org-timestamp-change (- (prefix-numeric-value arg)) 'day)))
58792
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 (defsubst org-pos-in-match-range (pos n)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6346 (and (match-beginning n)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6347 (<= (match-beginning n) pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6348 (>= (match-end n) pos)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6349
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6350 (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
6351 "Determine if the cursor is in or at a timestamp."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6352 (interactive)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6353 (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
6354 (pos (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6355 (ans (or (looking-at tsr)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6356 (save-excursion
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
6357 (skip-chars-backward "^[<\n\r\t")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6358 (if (> (point) 1) (backward-char 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6359 (and (looking-at tsr)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6360 (> (- (match-end 0) pos) -1))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6361 (and (boundp 'org-ts-what)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6362 (setq org-ts-what
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6363 (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6364 ((org-pos-in-match-range pos 2) 'year)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6365 ((org-pos-in-match-range pos 3) 'month)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6366 ((org-pos-in-match-range pos 7) 'hour)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6367 ((org-pos-in-match-range pos 8) 'minute)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6368 ((or (org-pos-in-match-range pos 4)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6369 (org-pos-in-match-range pos 5)) 'day)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6370 (t 'day))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6371 ans))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6372
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6373 (defun org-timestamp-change (n &optional what)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6374 "Change the date in the time stamp at point.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6375 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
6376 `year', `minute', `second'. If WHAT is not given, the cursor position
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6377 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
6378 (let ((pos (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6379 with-hm inactive
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6380 org-ts-what
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6381 ts time time0)
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
6382 (if (not (org-at-timestamp-p t))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6383 (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
6384 (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
6385 org-display-custom-times
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6386 (get-text-property (point) 'display)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6387 (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
6388 (setq org-ts-what 'day))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6389 (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
6390 with-hm (<= (abs (- (cdr org-ts-lengths)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6391 (- (match-end 0) (match-beginning 0))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6392 1)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6393 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
6394 ts (match-string 0))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6395 (replace-match "")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6396 (setq time0 (org-parse-time-string ts))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6397 (setq time
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6398 (apply 'encode-time
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6399 (append
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6400 (list (or (car time0) 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6401 (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
6402 (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
6403 (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
6404 (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
6405 (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
6406 (nthcdr 6 time0))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6407 (if (eq what 'calendar)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6408 (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
6409 (save-excursion
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
6410 (save-match-data
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
6411 (set-buffer "*Calendar*")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6412 (calendar-cursor-to-date)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6413 (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
6414 (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
6415 (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
6416 (setcar time0 (or (car time0) 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6417 (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
6418 (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
6419 (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
6420 (setq org-last-changed-timestamp
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
6421 (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
6422 (org-clock-update-time-maybe)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6423 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6424 ;; Try to recenter the calendar window, if any
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6425 (if (and org-calendar-follow-timestamp-change
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6426 (get-buffer-window "*Calendar*" t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6427 (memq org-ts-what '(day month year)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6428 (org-recenter-calendar (time-to-days time)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6429
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6430 (defun org-recenter-calendar (date)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6431 "If the calendar is visible, recenter it to DATE."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6432 (let* ((win (selected-window))
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6433 (cwin (get-buffer-window "*Calendar*" t))
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6434 (calendar-move-hook nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6435 (when cwin
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6436 (select-window cwin)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6437 (calendar-goto-date (if (listp date) date
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6438 (calendar-gregorian-from-absolute date)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6439 (select-window win))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6440
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6441 (defun org-goto-calendar (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6442 "Go to the Emacs calendar at the current date.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6443 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
6444 A prefix ARG can be used to force the current date."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6445 (interactive "P")
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6446 (let ((tsr org-ts-regexp) diff
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6447 (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
6448 (view-calendar-holidays-initially nil)
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6449 (view-diary-entries-initially nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6450 (if (or (org-at-timestamp-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6451 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6452 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6453 (looking-at (concat ".*" tsr))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6454 (let ((d1 (time-to-days (current-time)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6455 (d2 (time-to-days
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6456 (org-time-string-to-time (match-string 1)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6457 (setq diff (- d2 d1))))
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6458 (calendar)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6459 (calendar-goto-today)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6460 (if (and diff (not arg)) (calendar-forward-day diff))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6461
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6462 (defun org-date-from-calendar ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6463 "Insert time stamp corresponding to cursor date in *Calendar* buffer.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6464 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
6465 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6466 (org-timestamp-change 0 'calendar))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6467
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6468 ;;; 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
6469
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6470 (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
6471 "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
6472
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6473 (defun org-clock-in ()
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6474 "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
6475 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
6476 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6477 (org-clock-out t)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6478 (let (ts)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6479 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6480 (org-back-to-heading t)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6481 (beginning-of-line 2)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6482 (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
6483 (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
6484 (beginning-of-line 1))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6485 (insert "\n") (backward-char 1)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6486 (indent-relative)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6487 (insert org-clock-string " ")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6488 (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
6489 (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
6490 (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
6491
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6492 (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
6493 "Stop the currently running clock.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6494 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
6495 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6496 (catch 'exit
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 (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
6499 (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
6500 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6501 (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
6502 (goto-char org-clock-marker)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6503 (beginning-of-line 1)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6504 (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
6505 (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
6506 (setq ts (match-string 2))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6507 (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
6508 (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
6509 (insert "--")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6510 (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
6511 (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
6512 (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
6513 h (floor (/ s 3600))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6514 s (- s (* 3600 h))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6515 m (floor (/ s 60))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6516 s (- s (* 60 s)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6517 (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
6518 (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
6519 (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
6520 (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
6521
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6522 (defun org-clock-cancel ()
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6523 "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
6524 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6525 (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
6526 (error "No active clock"))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6527 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6528 (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
6529 (goto-char org-clock-marker)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6530 (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
6531 (message "Clock canceled"))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6532
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6533 (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
6534 "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
6535 (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
6536
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6537 (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
6538 "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
6539 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
6540 (interactive)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6541 (let* ((bmp (buffer-modified-p))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6542 (re (concat "^\\(\\*+\\)[ \t]\\|^[ \t]*"
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6543 org-clock-string
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6544 "[ \t]*\\(\\[.*?\\]\\)-+\\(\\[.*?\\]\\)"))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6545 (lmax 30)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6546 (ltimes (make-vector lmax 0))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6547 (t1 0)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6548 (level 0)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6549 ts te dt
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
6550 time)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6551 (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
6552 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6553 (goto-char (point-max))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6554 (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
6555 (if (match-end 2)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6556 ;; A time
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6557 (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
6558 te (match-string 3)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6559 ts (time-to-seconds
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6560 (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
6561 te (time-to-seconds
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6562 (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
6563 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
6564 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
6565 dt (- te ts)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6566 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
6567 ;; A headline
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6568 (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
6569 (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
6570 (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
6571 (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
6572 (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
6573 (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
6574 (aset ltimes l 0))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6575 (goto-char (match-beginning 0))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6576 (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
6577 (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
6578 (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
6579
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6580 (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
6581 "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
6582 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
6583 in the echo area."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6584 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6585 (org-remove-clock-overlays)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6586 (let (time h m p)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6587 (org-clock-sum)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6588 (unless total-only
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6589 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6590 (goto-char (point-min))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6591 (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
6592 (goto-char p)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6593 (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
6594 (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
6595 (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
6596 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
6597 ;; 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
6598 (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
6599 (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
6600 nil 'local))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6601 (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
6602
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6603 (defvar org-clock-overlays nil)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
6604 (make-variable-buffer-local 'org-clock-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
6605
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6606 (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
6607 "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
6608 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
6609 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
6610 will be easy to remove."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6611 (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
6612 (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
6613 (off 0)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6614 ov tx)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6615 (move-to-column c)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6616 (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
6617 (skip-chars-backward " \t")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6618 (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
6619 tx (concat (buffer-substring (1- (point)) (point))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6620 (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
6621 (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
6622 (make-string l ?*) h m
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6623 (make-string (- 10 l) ?\ ))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6624 '(face secondary-selection))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6625 ""))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6626 (if (not (featurep 'xemacs))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6627 (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
6628 (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
6629 (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
6630 (push ov org-clock-overlays)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6631
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6632 (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
6633 "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
6634 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
6635 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
6636 (interactive)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6637 (unless org-inhibit-highlight-removal
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6638 (mapc 'org-delete-overlay org-clock-overlays)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6639 (setq org-clock-overlays nil)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6640 (unless noremove
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6641 (remove-hook 'before-change-functions
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6642 '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
6643
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6644 (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
6645 "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
6646 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
6647 (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
6648 (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
6649 (< (point) org-clock-marker)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6650 (> (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
6651 org-clock-marker))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6652 ;; 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
6653 (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
6654 (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
6655 '(done)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6656 org-log-done)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6657 (org-clock-out))))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6658
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6659 (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
6660 'org-clock-out-if-current)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6661
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6662 (defun org-check-running-clock ()
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6663 "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
6664 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
6665 (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
6666 (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
6667 (buffer-name))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6668 (org-clock-out)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6669 (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
6670 (save-buffer))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6671
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6672 (defun org-clock-report ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6673 "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
6674 If the buffer contains lines
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6675 #+BEGIN: clocktable :maxlevel 3 :emphasize nil
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6676
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6677 #+END: clocktable
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6678 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
6679 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
6680 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
6681 The BEGIN line can contain parameters. Allowed are:
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6682 :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
6683 :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
6684 (interactive)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6685 (org-remove-clock-overlays)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6686 (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
6687 (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
6688 :maxlevel 2 :emphasize nil)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6689 (org-update-dblock))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6690
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6691 (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
6692 "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
6693 Otherwise, return nil."
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6694 (interactive)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6695 (save-excursion
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6696 (beginning-of-line 1)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6697 (skip-chars-forward " \t")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6698 (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
6699 (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
6700 " *[[<]\\([^]>]+\\)[]>]-+[[<]\\([^]>]+\\)[]>]"
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6701 "\\([ \t]*=>.*\\)?"))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6702 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
6703 (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
6704 nil
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6705 (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
6706 (end-of-line 1)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6707 (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
6708 te (match-string 2))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6709 (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
6710 (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
6711 (time-to-seconds
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6712 (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
6713 h (floor (/ s 3600))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6714 s (- s (* 3600 h))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6715 m (floor (/ s 60))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6716 s (- s (* 60 s)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6717 (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
6718 t)))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6719
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6720 (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
6721 "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
6722 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
6723 `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
6724 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
6725 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
6726 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
6727 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
6728 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
6729 (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
6730 (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
6731 (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
6732 (dow (nth 6 tm))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6733 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
6734 (cond
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6735 ((eq key 'today)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6736 (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
6737 ((eq key 'yesterday)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6738 (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
6739 ((eq key 'thisweek)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6740 (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
6741 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
6742 ((eq key 'lastweek)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6743 (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
6744 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
6745 ((eq key 'thismonth)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6746 (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
6747 ((eq key 'lastmonth)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6748 (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
6749 ((eq key 'thisyear)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6750 (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
6751 ((eq key 'lastyear)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6752 (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
6753 (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
6754 (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
6755 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
6756 (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
6757 (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
6758 (if as-strings
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6759 (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
6760 (cons ts te))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6761
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6762 (defun org-dblock-write:clocktable (params)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6763 "Write the standard clocktable."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6764 (let ((hlchars '((1 . "*") (2 . ?/)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6765 (emph nil)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6766 (ins (make-marker))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6767 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
6768 ts te cc block)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6769 (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
6770 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
6771 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
6772 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
6773 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
6774 (when block
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6775 (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
6776 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
6777 (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
6778 (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
6779 (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
6780 (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
6781 (move-marker ins (point))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6782 (setq ipos (point))
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
6783 ;; 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
6784 (insert-before-markers "Clock summary at ["
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6785 (substring
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6786 (format-time-string (cdr org-time-stamp-formats))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6787 1 -1)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6788 "]."
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
6789 (if block
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6790 (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
6791 "")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6792 "\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
6793 (org-clock-sum ts te)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6794 (setq h (/ org-clock-file-total-minutes 60)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6795 m (- org-clock-file-total-minutes (* 60 h)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6796 (insert-before-markers "|-\n|0|" "*Total file time*| "
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6797 (format "*%d:%02d*" h m)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6798 "|\n")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6799 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6800 (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
6801 (goto-char p)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6802 (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
6803 (save-excursion
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6804 (beginning-of-line 1)
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6805 (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
6806 (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
6807 (<= level maxlevel))
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6808 (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
6809 hdl (match-string 2)
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6810 h (/ time 60)
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6811 m (- time (* 60 h)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6812 (goto-char ins)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6813 (if (= level 1) (insert-before-markers "|-\n"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6814 (insert-before-markers
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
6815 "| " (int-to-string level) "|" hlc hdl hlc " |"
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6816 (make-string (1- level) ?|)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6817 hlc
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6818 (format "%d:%02d" h m)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6819 hlc
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6820 " |\n")))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6821 (goto-char ins)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6822 (backward-delete-char 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6823 (goto-char ipos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6824 (skip-chars-forward "^|")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6825 (org-table-align)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6826
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6827 (defun org-collect-clock-time-entries ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6828 "Return an internal list with clocking information.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6829 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
6830 FIXME: describe the elements."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6831 (interactive)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6832 (let ((re (concat "^[ \t]*" org-clock-string
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6833 " *\\[\\(.*?\\)\\]--\\[\\(.*?\\)\\]"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6834 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
6835 clockpos titlepos h m donep)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6836 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6837 (org-clock-sum)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6838 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6839 (while (re-search-forward re nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6840 (setq clockpos (match-beginning 0)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6841 beg (match-string 1) end (match-string 2)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6842 cont (match-end 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6843 (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
6844 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
6845 (org-back-to-heading t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6846 (setq donep (org-entry-is-done-p))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6847 (setq titlepos (point)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6848 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
6849 h (/ total 60) m (- total (* 60 h))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6850 total (cons h m))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6851 (looking-at "\\(\\*+\\) +\\(.*\\)")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6852 (setq level (- (match-end 1) (match-beginning 1))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6853 title (org-match-string-no-properties 2))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6854 (save-excursion (outline-next-heading) (setq next (point)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6855 (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
6856 (goto-char next)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6857 (setq leafp (and (looking-at "^\\*+ ")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6858 (<= (- (match-end 0) (point)) level)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6859 (push (list beg end clockpos closedp donep
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6860 total title titlepos level leafp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6861 rtn)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6862 (goto-char cont)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6863 (nreverse rtn)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6864
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6865 ;;; Agenda, and Diary Integration
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6866
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6867 ;;; Define the mode
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6868
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6869 (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
6870 "Keymap for `org-agenda-mode'.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6871
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6872 (defvar org-agenda-menu) ; defined later in this file.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6873 (defvar org-agenda-follow-mode nil)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
6874 (defvar org-agenda-show-log nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6875 (defvar org-agenda-redo-command nil)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6876 (defvar org-agenda-mode-hook nil)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6877 (defvar org-agenda-type nil)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6878 (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
6879
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6880 (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
6881 "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
6882
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
6883 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
6884
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
6885 \\{org-agenda-mode-map}"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6886 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6887 (kill-all-local-variables)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6888 (setq major-mode 'org-agenda-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6889 (setq mode-name "Org-Agenda")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6890 (use-local-map org-agenda-mode-map)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6891 (easy-menu-add org-agenda-menu)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6892 (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
6893 (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
6894 (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
6895 (unless org-agenda-keep-modes
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
6896 (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
6897 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
6898 (easy-menu-change
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6899 '("Agenda") "Agenda Files"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6900 (append
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
6901 (list
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6902 (vector
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6903 (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
6904 "Restricted to single file"
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6905 "Edit File List")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6906 '(org-edit-agenda-file-list)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6907 (not (get 'org-agenda-files 'org-restrict)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6908 "--")
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6909 (mapcar 'org-file-menu-entry (org-agenda-files))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6910 (org-agenda-set-mode-name)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6911 (apply
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6912 (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
6913 (list 'org-agenda-mode-hook)))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6914
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6915 (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
6916 (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
6917 (define-key org-agenda-mode-map "\C-m" 'org-agenda-switch-to)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6918 (define-key org-agenda-mode-map " " 'org-agenda-show)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6919 (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
6920 (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
6921 (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
6922 (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
6923 (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
6924 (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
6925 (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
6926 (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
6927 (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
6928 (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
6929 (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
6930 (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
6931 (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
6932
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6933 (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
6934 (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
6935 (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
6936 (let ((l '(1 2 3 4 5 6 7 8 9 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6937 (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
6938 (int-to-string (pop l)) 'digit-argument)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6939
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6940 (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
6941 (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
6942 (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
6943 (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
6944 (define-key org-agenda-mode-map "r" 'org-agenda-redo)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6945 (define-key org-agenda-mode-map "q" 'org-agenda-quit)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6946 (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
6947 (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
6948 (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
6949 (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
6950 (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
6951 (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
6952 (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
6953 (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
6954 (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
6955 (define-key org-agenda-mode-map "\C-c," 'org-agenda-priority)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6956 (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
6957 (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
6958 (eval-after-load "calendar"
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6959 '(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
6960 '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
6961 (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
6962 (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
6963 (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
6964 (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
6965 (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
6966 (define-key org-agenda-mode-map "H" 'org-agenda-holidays)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6967 (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
6968 (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
6969 (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
6970 (define-key org-agenda-mode-map "X" 'org-clock-cancel)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6971 (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
6972 (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
6973 (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
6974 (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
6975 (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
6976 (define-key org-agenda-mode-map [(right)] 'org-agenda-later)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6977 (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
6978 (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
6979 (defvar org-agenda-keymap (copy-keymap org-agenda-mode-map)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6980 "Local keymap for agenda entries from Org-mode.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6981
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
6982 (define-key org-agenda-keymap
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6983 (if (featurep 'xemacs) [(button2)] [(mouse-2)]) 'org-agenda-goto-mouse)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6984 (define-key org-agenda-keymap
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6985 (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
6986 (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
6987 (define-key org-agenda-keymap [follow-link] 'mouse-face))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6988 (easy-menu-define org-agenda-menu org-agenda-mode-map "Agenda menu"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6989 '("Agenda"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6990 ("Agenda Files")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6991 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6992 ["Show" org-agenda-show t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6993 ["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
6994 ["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
6995 ["Follow Mode" org-agenda-follow-mode
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6996 :style toggle :selected org-agenda-follow-mode :active t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6997 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6998 ["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
6999 ("Tags"
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
7000 ["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
7001 ["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
7002 ("Schedule"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
7003 ["Schedule" org-agenda-schedule t]
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
7004 ["Set Deadline" org-agenda-deadline t]
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
7005 "--"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7006 ["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
7007 ["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
7008 ["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
7009 ("Priority"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7010 ["Set Priority" org-agenda-priority t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7011 ["Increase Priority" org-agenda-priority-up t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7012 ["Decrease Priority" org-agenda-priority-down t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7013 ["Show Priority" org-agenda-show-priority t])
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7014 "--"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7015 ;; ["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
7016 ["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
7017 ["Save all Org-mode Buffers" org-save-all-org-buffers t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7018 "--"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7019 ["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
7020 ["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
7021 ["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
7022 "--"
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7023 ["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
7024 :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
7025 ["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
7026 :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
7027 "--"
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7028 ["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
7029 :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
7030 ["Include Diary" org-agenda-toggle-diary
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7031 :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
7032 ["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
7033 :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
7034 "--"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7035 ["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
7036 ("Calendar Commands"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7037 ["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
7038 ["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
7039 ["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
7040 ["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
7041 ["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
7042 ["Create iCalendar file" org-export-icalendar-combine-agenda-files t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7043 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7044 ["Quit" org-agenda-quit t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7045 ["Exit and Release Buffers" org-agenda-exit t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7046 ))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7047
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7048 (defvar org-agenda-restrict nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7049 (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
7050 (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
7051 (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
7052
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7053 ;;;###autoload
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7054 (defun org-agenda (arg)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7055 "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
7056 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
7057 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
7058 g
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7059 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
7060 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
7061 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
7062 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
7063 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
7064 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
7065 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
7066 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
7067
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7068 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
7069 `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
7070 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
7071
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7072 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
7073 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
7074 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
7075 (interactive "P")
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7076 (catch 'exit
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7077 (let* ((buf (current-buffer))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7078 (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
7079 (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
7080 (custom org-agenda-custom-commands)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7081 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
7082 ;; Turn off restriction
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7083 (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
7084 (setq org-agenda-restrict nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7085 (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
7086 (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
7087 ;; Remember where this call originated
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7088 (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
7089 (save-window-excursion
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7090 (delete-other-windows)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7091 (switch-to-buffer-other-window " *Agenda Commands*")
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7092 (erase-buffer)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7093 (insert
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7094 "Press key for an agenda command:
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7095 --------------------------------
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7096 a Agenda for current week or day
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7097 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
7098 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
7099 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
7100 (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
7101 (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
7102 (insert (format "\n%-4s%-14s: %s"
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7103 key
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7104 (cond
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7105 ((stringp type) type)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7106 ((eq type 'tags) "Tags query")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7107 ((eq type 'todo) "TODO keyword")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7108 ((eq type 'tags-tree) "Tags tree")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7109 ((eq type 'todo-tree) "TODO kwd tree")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7110 ((eq type 'occur-tree) "Occur tree")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7111 (t "???"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7112 (if (stringp match)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7113 (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
7114 (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
7115 (if restrict-ok
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7116 (insert "\n"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7117 (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
7118
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7119 (goto-char (point-min))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7120 (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
7121 (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
7122 (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
7123 (setq c (read-char-exclusive))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7124 (message "")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7125 (when (memq c '(?L ?1 ?0))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7126 (if restrict-ok
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
7127 (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
7128 (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
7129 (with-current-buffer " *Agenda Commands*"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7130 (goto-char (point-max))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7131 (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
7132 (goto-char (point-min)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7133 (when (eq c ?0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7134 (setq org-agenda-restrict t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7135 (with-current-buffer buf
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7136 (if (org-region-active-p)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7137 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7138 (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
7139 (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
7140 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7141 (org-back-to-heading t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7142 (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
7143 (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
7144 (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
7145 (unless (eq c ?L)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7146 (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
7147 (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
7148 (setq c (read-char-exclusive)))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7149 (message "")))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7150 (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
7151 ;; 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
7152 (cond
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7153 ((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
7154 ((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
7155 ((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
7156 ((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
7157 ((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
7158 ((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
7159 ((equal c ?L)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7160 (unless restrict-ok
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7161 (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
7162 (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
7163 ((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
7164 (if (symbolp (nth 1 entry))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7165 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7166 (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
7167 lprops (nth 3 entry))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7168 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7169 ((eq type 'tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7170 (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
7171 ((eq type 'tags-todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7172 (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
7173 ((eq type 'todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7174 (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
7175 ((eq type 'tags-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7176 (org-check-for-org-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7177 (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
7178 ((eq type 'todo-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7179 (org-check-for-org-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7180 (org-let lprops
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7181 '(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
7182 (regexp-quote match) "\\>"))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7183 ((eq type 'occur-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7184 (org-check-for-org-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7185 (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
7186 (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
7187 (org-run-agenda-series (cddr entry))))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7188 (t (error "Invalid key"))))))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7189
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7190 ;; 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
7191 (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
7192 (org-prepare-agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7193 (let* ((org-agenda-multi t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7194 (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
7195 (org-select-agenda-window t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7196 (cmds (car series))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7197 (gprops (nth 1 series))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7198 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
7199 cmd type lprops)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7200 (while (setq cmd (pop cmds))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7201 (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
7202 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7203 ((eq type 'agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7204 (call-interactively 'org-agenda-list))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7205 ((eq type 'alltodo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7206 (call-interactively 'org-todo-list))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7207 ((eq type 'tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7208 (org-let2 gprops lprops
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7209 '(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
7210 ((eq type 'tags-todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7211 (org-let2 gprops lprops
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7212 '(org-tags-view '(4) match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7213 ((eq type 'todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7214 (org-let2 gprops lprops
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7215 '(org-todo-list match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7216 (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
7217 (widen)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7218 (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
7219 (goto-char (point-min)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7220 (org-finalize-agenda))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7221
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7222 ;;;###autoload
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7223 (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
7224 "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
7225 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
7226 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
7227 before running the agenda command."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7228 (let (pars)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7229 (while parameters
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7230 (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
7231 (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
7232 (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
7233 (set-buffer "*Org Agenda*")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7234 (princ (buffer-string))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7235
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7236 (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
7237 "Inhibit read-only for BODY."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7238 `(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
7239
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7240 (defun org-check-for-org-mode ()
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7241 "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
7242 (or (org-mode-p)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7243 (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
7244 major-mode)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7245
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7246 (defun org-fit-agenda-window ()
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7247 "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
7248 (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
7249 (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
7250 (fboundp 'fit-window-to-buffer)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7251 (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
7252 (/ (frame-height) 2))))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7253
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7254 (defun org-agenda-files (&optional unrestricted)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7255 "Get the list of agenda files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7256 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
7257 is currently in place."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7258 (cond
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7259 ((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
7260 ((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
7261 ((listp org-agenda-files) org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7262 (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
7263
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7264 (defvar org-window-configuration)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7265
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7266 (defun org-edit-agenda-file-list ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7267 "Edit the list of agenda files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7268 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
7269 `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
7270 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
7271 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
7272 (interactive)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7273 (if (stringp org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7274 (let ((cw (current-window-configuration)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7275 (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
7276 (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
7277 (org-add-hook 'after-save-hook
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7278 (lambda ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7279 (set-window-configuration
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7280 (prog1 org-window-configuration
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7281 (kill-buffer (current-buffer))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7282 (org-install-agenda-files-menu)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7283 (message "New agenda file list installed"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7284 nil 'local)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7285 (message (substitute-command-keys
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7286 "Edit list and finish with \\[save-buffer]")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7287 (customize-variable 'org-agenda-files)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7288
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7289 (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
7290 "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
7291 (if (stringp org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7292 (let ((f org-agenda-files) b)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7293 (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
7294 (with-temp-file f
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7295 (insert (mapconcat 'identity list "\n") "\n")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7296 (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
7297 (setq org-agenda-files list)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7298 (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
7299
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7300 (defun org-read-agenda-file-list ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7301 "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
7302 (when (stringp org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7303 (with-temp-buffer
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7304 (insert-file-contents org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7305 (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
7306
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7307 (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
7308 "List of all currently active markers created by `org-agenda'.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7309 (defvar org-agenda-last-marker-time (time-to-seconds (current-time))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7310 "Creation time of the last agenda marker.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7311
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7312 (defun org-agenda-new-marker (&optional pos)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7313 "Return a new agenda marker.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7314 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
7315 no longer in use."
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7316 (let ((m (copy-marker (or pos (point)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7317 (setq org-agenda-last-marker-time (time-to-seconds (current-time)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7318 (push m org-agenda-markers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7319 m))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7320
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7321 (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
7322 "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
7323 (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
7324 (> (- (time-to-seconds (current-time))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7325 org-agenda-last-marker-time)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7326 5))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7327 (while org-agenda-markers
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7328 (move-marker (pop org-agenda-markers) nil))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7329
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7330 (defvar org-agenda-new-buffers nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7331 "Buffers created to visit agenda files.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7332
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7333 (defun org-get-agenda-file-buffer (file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7334 "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
7335 it to the list of buffers which might be released later."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7336 (let ((buf (find-buffer-visiting file)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7337 (if buf
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7338 buf ; just return it
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7339 ;; Make a new buffer and remember it
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7340 (setq buf (find-file-noselect file))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7341 (if buf (push buf org-agenda-new-buffers))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7342 buf)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7343
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7344 (defun org-release-buffers (blist)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7345 "Release all buffers in list, asking the user for confirmation when needed.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7346 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
7347 \(if the user agrees) and then killed."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7348 (let (buf file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7349 (while (setq buf (pop blist))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7350 (setq file (buffer-file-name buf))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7351 (when (and (buffer-modified-p buf)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7352 file
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7353 (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
7354 (with-current-buffer buf (save-buffer)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7355 (kill-buffer buf))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7356
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7357 (defun org-timeline (&optional include-all)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7358 "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
7359 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
7360 \\[universal-argument] prefix, all unfinished TODO items will also be shown,
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7361 under the current date.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7362 If the buffer contains an active region, only check the region for
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7363 dates."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7364 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7365 (require 'calendar)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7366 (org-compile-prefix-format 'timeline)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7367 (org-set-sorting-strategy 'timeline)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7368 (let* ((dopast t)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7369 (dotodo include-all)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7370 (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
7371 (entry buffer-file-name)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7372 (date (calendar-current-date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7373 (win (selected-window))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7374 (pos1 (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7375 (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
7376 (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
7377 (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
7378 t doclosed ; always include today
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7379 org-timeline-show-empty-dates))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7380 (today (time-to-days (current-time)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7381 (past t)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7382 args
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7383 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
7384 (setq org-agenda-redo-command
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7385 (list 'progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7386 (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
7387 (list 'org-timeline (list 'quote include-all))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7388 (if (not dopast)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7389 ;; Remove past dates from the list of dates.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7390 (setq day-numbers (delq nil (mapcar (lambda(x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7391 (if (>= x today) x nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7392 day-numbers))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7393 (org-prepare-agenda)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7394 (if doclosed (push :closed args))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7395 (push :timestamp args)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7396 (if dotodo (push :todo args))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7397 (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
7398 (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
7399 (progn
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7400 (setq s (point))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7401 (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
7402 (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
7403 (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
7404 (if (and (>= d today)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7405 dopast
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7406 past)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7407 (progn
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7408 (setq past nil)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7409 (insert (make-string 79 ?-) "\n")))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7410 (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
7411 (setq s (point))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7412 (setq rtn (and (not emptyp)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7413 (apply 'org-agenda-get-day-entries
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7414 entry date args)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7415 (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
7416 (progn
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7417 (insert (calendar-day-name date) " "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7418 (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
7419 (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
7420 (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
7421 (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
7422 'org-level-3)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7423 (if (equal d today)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7424 (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
7425 (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
7426 (put-text-property s (1- (point)) 'day d)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7427 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7428 (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
7429 (point-min)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7430 (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
7431 (org-finalize-agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7432 (setq buffer-read-only t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7433 (when (not org-select-agenda-window)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7434 (select-window win)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7435 (goto-char pos1))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7436
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7437 (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
7438 (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
7439 "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
7440
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7441 ;;;###autoload
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7442 (defun org-agenda-list (&optional include-all start-day ndays)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7443 "Produce a weekly view from all files in variable `org-agenda-files'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7444 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
7445 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
7446 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
7447 also be shown, under the current date.
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7448 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
7449 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
7450 to turn on logging.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7451 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
7452 given in `org-agenda-start-on-weekday'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7453 NDAYS defaults to `org-agenda-ndays'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7454 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7455 (if org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7456 (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
7457 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
7458 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
7459 (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
7460 (org-compile-prefix-format 'agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7461 (org-set-sorting-strategy 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7462 (require 'calendar)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7463 (let* ((org-agenda-start-on-weekday
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7464 (if (or (equal ndays 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7465 (and (null ndays) (equal 1 org-agenda-ndays)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7466 nil org-agenda-start-on-weekday))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7467 (thefiles (org-agenda-files))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7468 (files thefiles)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7469 (win (selected-window))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7470 (today (time-to-days (current-time)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7471 (sd (or start-day today))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7472 (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
7473 (< org-agenda-ndays 7))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7474 sd
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7475 (let* ((nt (calendar-day-of-week
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7476 (calendar-gregorian-from-absolute sd)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7477 (n1 org-agenda-start-on-weekday)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7478 (d (- nt n1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7479 (- sd (+ (if (< d 0) 7 0) d)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7480 (day-numbers (list start))
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
7481 (inhibit-redisplay t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7482 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
7483 (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
7484 (list 'org-agenda-list (list 'quote include-all) start-day ndays))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7485 ;; Make the list of days
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7486 (setq ndays (or ndays org-agenda-ndays)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7487 nd ndays)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7488 (while (> ndays 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7489 (push (1+ (car day-numbers)) day-numbers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7490 (setq ndays (1- ndays)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7491 (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
7492 (org-prepare-agenda)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
7493 (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
7494 (org-set-local 'include-all-loc include-all)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7495 (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
7496 (member today day-numbers))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7497 (setq files thefiles
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7498 rtnall nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7499 (while (setq file (pop files))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7500 (catch 'nextfile
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7501 (org-check-agenda-file file)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7502 (setq date (calendar-gregorian-from-absolute today)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7503 rtn (org-agenda-get-day-entries
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7504 file date :todo))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7505 (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
7506 (when rtnall
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7507 (insert "ALL CURRENTLY OPEN TODO ITEMS:\n")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7508 (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
7509 (list 'face 'org-level-3))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7510 (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
7511 (setq s (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7512 (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
7513 (add-text-properties s (1- (point)) (list 'face 'org-level-3))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7514 (while (setq d (pop day-numbers))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7515 (setq date (calendar-gregorian-from-absolute d)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7516 s (point))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7517 (if (or (setq todayp (= d today))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7518 (and (not start-pos) (= d sd)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7519 (setq start-pos (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7520 (if (and start-pos (not end-pos))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7521 (setq end-pos (point))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7522 (setq files thefiles
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7523 rtnall nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7524 (while (setq file (pop files))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7525 (catch 'nextfile
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7526 (org-check-agenda-file file)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7527 (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
7528 (setq rtn (org-agenda-get-day-entries
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7529 file date
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7530 :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
7531 (setq rtn (org-agenda-get-day-entries
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7532 file date
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7533 :deadline :scheduled :timestamp)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7534 (setq rtnall (append rtnall rtn))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7535 (if org-agenda-include-diary
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7536 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7537 (require 'diary-lib)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7538 (setq rtn (org-get-entries-from-diary date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7539 (setq rtnall (append rtnall rtn))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7540 (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
7541 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7542 (insert (format "%-9s %2d %s %4d\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7543 (calendar-day-name date)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7544 (extract-calendar-day date)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7545 (calendar-month-name (extract-calendar-month date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7546 (extract-calendar-year date)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7547 (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
7548 'org-level-3)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7549 (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
7550
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7551 (if rtnall (insert
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7552 (org-finalize-agenda-entries
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7553 (org-agenda-add-time-grid-maybe
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7554 rtnall nd todayp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7555 "\n"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7556 (put-text-property s (1- (point)) 'day d))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7557 (goto-char (point-min))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7558 (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
7559 (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
7560 (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
7561 (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
7562 (recenter -1)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7563 (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
7564 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7565 (goto-char (or start-pos 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7566 (recenter 1))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7567 (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
7568 (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
7569 (org-finalize-agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7570 (setq buffer-read-only t)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7571 (if (not org-select-agenda-window) (select-window win))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7572 (message "")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7573
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7574 (defvar org-select-this-todo-keyword nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7575
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7576 ;;;###autoload
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7577 (defun org-todo-list (arg)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7578 "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
7579 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
7580 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
7581 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
7582 `org-todo-keywords'."
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7583 (interactive "P")
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
7584 (require 'calendar)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7585 (org-compile-prefix-format 'todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7586 (org-set-sorting-strategy 'todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7587 (let* ((today (time-to-days (current-time)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7588 (date (calendar-gregorian-from-absolute today))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7589 (win (selected-window))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7590 (kwds org-todo-keywords)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7591 (completion-ignore-case t)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7592 (org-select-this-todo-keyword
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7593 (if (stringp arg) arg
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
7594 (and arg (integerp arg) (> arg 0)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
7595 (nth (1- arg) org-todo-keywords))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7596 rtn rtnall files file pos)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7597 (when (equal arg '(4))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7598 (setq org-select-this-todo-keyword
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7599 (completing-read "Keyword: " (mapcar 'list org-todo-keywords)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7600 nil t)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7601 (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
7602 (org-prepare-agenda)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
7603 (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
7604 (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
7605 (setq org-agenda-redo-command
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7606 '(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
7607 (setq files (org-agenda-files)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7608 rtnall nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7609 (while (setq file (pop files))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7610 (catch 'nextfile
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7611 (org-check-agenda-file file)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7612 (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
7613 (setq rtnall (append rtnall rtn))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7614 (insert "Global list of TODO items of type: ")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7615 (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
7616 (list 'face 'org-level-3))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7617 (setq pos (point))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7618 (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
7619 (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
7620 (setq pos (point))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7621 (unless org-agenda-multi
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7622 (insert
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7623 "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
7624 (let ((n 0))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7625 (mapconcat (lambda (x)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7626 (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
7627 org-todo-keywords " "))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7628 "\n"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7629 (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
7630 (when rtnall
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7631 (insert (org-finalize-agenda-entries rtnall) "\n"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7632 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7633 (org-fit-agenda-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7634 (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
7635 (org-finalize-agenda)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7636 (setq buffer-read-only t)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7637 (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
7638
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7639 (defun org-check-agenda-file (file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7640 "Make sure FILE exists. If not, ask user what to do."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7641 (when (not (file-exists-p file))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7642 (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
7643 (abbreviate-file-name file))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7644 (let ((r (downcase (read-char-exclusive))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7645 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7646 ((equal r ?r)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7647 (org-remove-file file)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7648 (throw 'nextfile t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7649 (t (error "Abort"))))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7650
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7651 (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
7652 "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
7653 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
7654 (if (memq org-agenda-type types)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7655 t
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7656 (if error
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
7657 (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
7658 nil)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7659
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7660 (defun org-agenda-quit ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7661 "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
7662 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7663 (let ((buf (current-buffer)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7664 (if (not (one-window-p)) (delete-window))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7665 (kill-buffer buf)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7666 (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
7667 ;; 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
7668 (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
7669 (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
7670 org-pre-agenda-window-conf
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7671 (set-window-configuration org-pre-agenda-window-conf)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7672
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7673 (defun org-agenda-exit ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7674 "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
7675 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
7676 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
7677 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7678 (org-release-buffers org-agenda-new-buffers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7679 (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
7680 (org-agenda-quit))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7681
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7682 (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
7683 "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
7684 (interactive)
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7685 (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
7686 (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
7687 (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
7688
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7689 (defun org-agenda-redo ()
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7690 "Rebuild Agenda.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7691 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
7692 (interactive)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7693 (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
7694 (line (org-current-line))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7695 (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
7696 (message "Rebuilding agenda buffer...")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7697 (eval org-agenda-redo-command)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7698 (message "Rebuilding agenda buffer...done")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7699 (goto-line line)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7700 (recenter window-line)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7701
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7702 (defun org-agenda-goto-today ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7703 "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
7704 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7705 (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
7706 (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
7707 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7708 (tdpos (goto-char tdpos))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7709 ((eq org-agenda-type 'agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7710 (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
7711 (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
7712 (org-agenda-redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7713 (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
7714 (t (error "Cannot find today")))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7715
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7716 (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
7717 (goto-char
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7718 (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
7719 (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
7720 (point-min))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7721
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7722 (defun org-agenda-later (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7723 "Go forward in time by `org-agenda-ndays' days.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7724 With prefix ARG, go forward that many times `org-agenda-ndays'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7725 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7726 (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
7727 (let ((org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7728 (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
7729 (+ 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
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
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7734 (defun org-agenda-earlier (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7735 "Go back in time by `org-agenda-ndays' days.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7736 With prefix ARG, go back that many times `org-agenda-ndays'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7737 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7738 (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
7739 (let ((org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7740 (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
7741 (- 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
7742 nil t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7743 (org-agenda-redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7744 (org-agenda-find-today-or-agenda)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7745
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7746 (defun org-agenda-week-view ()
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7747 "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
7748 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7749 (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
7750 (if (= org-agenda-ndays 7)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7751 (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
7752 (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
7753 (let ((org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7754 (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
7755 (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
7756 starting-day)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7757 nil t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7758 (org-agenda-redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7759 (org-agenda-find-today-or-agenda))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7760 (org-agenda-set-mode-name)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7761 (message "Switched to week view"))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7762
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7763 (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
7764 "Switch to daily view for agenda."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7765 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7766 (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
7767 (if (= org-agenda-ndays 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7768 (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
7769 (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
7770 (let ((org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7771 (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
7772 (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
7773 starting-day)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7774 nil t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7775 (org-agenda-redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7776 (org-agenda-find-today-or-agenda))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7777 (org-agenda-set-mode-name)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7778 (message "Switched to day view"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7779
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7780 (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
7781 "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
7782 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7783 (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
7784 (beginning-of-line 1)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7785 (if (looking-at "^\\S-") (forward-char 1))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7786 (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
7787 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7788 (backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7789 (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
7790 (goto-char (match-beginning 0)))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7791
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7792 (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
7793 "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
7794 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7795 (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
7796 (beginning-of-line 1)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7797 (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
7798 (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
7799
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7800 ;; Initialize the highlight
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7801 (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
7802 (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
7803
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7804 (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
7805 "Highlight a region with overlay."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7806 (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
7807 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
7808
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7809 (defun org-unhighlight ()
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7810 "Detach overlay INDEX."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7811 (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
7812
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7813
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7814 (defun org-agenda-follow-mode ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7815 "Toggle follow mode in an agenda buffer."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7816 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7817 (setq org-agenda-follow-mode (not org-agenda-follow-mode))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7818 (org-agenda-set-mode-name)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7819 (message "Follow mode is %s"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7820 (if org-agenda-follow-mode "on" "off")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7821
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7822 (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
7823 "Toggle log mode in an agenda buffer."
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7824 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7825 (org-agenda-check-type t 'agenda 'timeline)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7826 (setq org-agenda-show-log (not org-agenda-show-log))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7827 (org-agenda-set-mode-name)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7828 (org-agenda-redo)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7829 (message "Log mode is %s"
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7830 (if org-agenda-show-log "on" "off")))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7831
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7832 (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
7833 "Toggle diary inclusion in an agenda buffer."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7834 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7835 (org-agenda-check-type t 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7836 (setq org-agenda-include-diary (not org-agenda-include-diary))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7837 (org-agenda-redo)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7838 (org-agenda-set-mode-name)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7839 (message "Diary inclusion turned %s"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7840 (if org-agenda-include-diary "on" "off")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7841
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7842 (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
7843 "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
7844 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7845 (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
7846 (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
7847 (org-agenda-redo)
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7848 (org-agenda-set-mode-name)
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7849 (message "Time-grid turned %s"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7850 (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
7851
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7852 (defun org-agenda-set-mode-name ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7853 "Set the mode name to indicate all the small mode settings."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7854 (setq mode-name
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7855 (concat "Org-Agenda"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7856 (if (equal org-agenda-ndays 1) " Day" "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7857 (if (equal org-agenda-ndays 7) " Week" "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7858 (if org-agenda-follow-mode " Follow" "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7859 (if org-agenda-include-diary " Diary" "")
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7860 (if org-agenda-use-time-grid " Grid" "")
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7861 (if org-agenda-show-log " Log" "")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7862 (force-mode-line-update))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7863
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7864 (defun org-agenda-post-command-hook ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7865 (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
7866 (setq org-agenda-type (get-text-property (point) 'org-agenda-type))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7867 (if (and org-agenda-follow-mode
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7868 (get-text-property (point) 'org-marker))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7869 (org-agenda-show)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7870
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7871 (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
7872
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7873 (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
7874 "Get the (Emacs Calendar) diary entries for DATE."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7875 (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
7876 (diary-display-hook '(fancy-diary-display))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7877 (list-diary-entries-hook
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7878 (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
7879 (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
7880 (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
7881 entries
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7882 (org-disable-agenda-to-diary t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7883 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7884 (save-window-excursion
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
7885 (list-diary-entries date 1))) ;; Keep this name for now, compatibility
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7886 (if (not (get-buffer fancy-diary-buffer))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7887 (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
7888 (with-current-buffer fancy-diary-buffer
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7889 (setq buffer-read-only nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7890 (if (= (point-max) 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7891 ;; No entries
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7892 (setq entries nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7893 ;; Omit the date and other unnecessary stuff
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7894 (org-agenda-cleanup-fancy-diary)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7895 ;; 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
7896 (if (= (point-max) 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7897 (setq entries nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7898 (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
7899 (set-buffer-modified-p nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7900 (kill-buffer fancy-diary-buffer)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7901 (when entries
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7902 (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
7903 (setq entries
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7904 (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7905 (lambda (x)
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
7906 (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
7907 ;; 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
7908 (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
7909 entries)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7910
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7911 (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
7912 "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
7913 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
7914 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
7915 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
7916 (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
7917 (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
7918 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7919 (replace-match "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7920 (re-search-forward "\n=+$" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7921 (replace-match "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7922 (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
7923 (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
7924 (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
7925 (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
7926 (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
7927 (replace-match ""))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7928 (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
7929 (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
7930 (replace-match "")))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7931
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7932 ;; 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
7933 (eval-after-load "diary-lib"
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7934 '(if (boundp 'diary-modify-entry-list-string-function)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7935 ;; 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
7936 nil
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7937 ;; 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
7938 (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
7939 "Make the position visible."
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7940 (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
7941 (stringp string)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7942 buffer-file-name)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7943 (setq string (org-modify-diary-entry-string string))))))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7944
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7945 (defun org-modify-diary-entry-string (string)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7946 "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
7947 (org-add-props string nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7948 'mouse-face 'highlight
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7949 'keymap org-agenda-keymap
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7950 '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
7951 (abbreviate-file-name buffer-file-name))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7952 'org-agenda-diary-link t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7953 '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
7954
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7955 (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
7956 "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
7957 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
7958 ;; 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
7959 (when org-disable-agenda-to-diary
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7960 (condition-case nil
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7961 (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
7962 (error
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7963 (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
7964
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7965 ;;;###autoload
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7966 (defun org-cycle-agenda-files ()
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7967 "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
7968 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
7969 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
7970 (interactive)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7971 (let* ((fs (org-agenda-files t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7972 (files (append fs (list (car fs))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7973 (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
7974 file)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7975 (unless files (error "No agenda files"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7976 (catch 'exit
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7977 (while (setq file (pop files))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7978 (if (equal (file-truename file) tcf)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7979 (when (car files)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7980 (find-file (car files))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7981 (throw 'exit t))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7982 (find-file (car fs)))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7983
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7984 (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
7985 "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
7986 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
7987 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
7988 (interactive)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7989 (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
7990
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7991 (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
7992 "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
7993 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
7994 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
7995 end of the list."
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7996 (interactive "P")
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7997 (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
7998 (cons (file-truename x) x))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7999 (org-agenda-files t)))
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8000 (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
8001 x had)
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
8002 (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
8003
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8004 (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
8005 (if to-end
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
8006 (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
8007 (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
8008 (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
8009 (org-install-agenda-files-menu)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
8010 (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
8011 (if had "moved" "added") (if to-end "end" "front"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8012
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8013 (defun org-remove-file (&optional file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8014 "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
8015 These are the files which are being checked for agenda entries.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8016 Optional argument FILE means, use this file instead of the current."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8017 (interactive)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8018 (let* ((file (or file buffer-file-name))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8019 (true-file (file-truename file))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8020 (afile (abbreviate-file-name file))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8021 (files (delq nil (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8022 (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8023 (if (equal true-file
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8024 (file-truename x))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8025 nil x))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8026 (org-agenda-files t)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8027 (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
8028 (progn
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8029 (org-store-new-agenda-file-list files)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8030 (org-install-agenda-files-menu)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8031 (message "Removed file: %s" afile))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8032 (message "File was not in list: %s" afile))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8033
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8034 (defun org-file-menu-entry (file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8035 (vector file (list 'find-file file) t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8036
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8037 (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
8038 "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
8039 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
8040 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
8041 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
8042 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
8043 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
8044 (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
8045 dates dates1 date day day1 day2 ts1 ts2)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8046 (if force-today
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8047 (setq dates (list (time-to-days (current-time)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8048 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8049 (goto-char beg)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8050 (while (re-search-forward re end t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8051 (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
8052 (substring (match-string 1) 0 10))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8053 (or (memq day dates) (push day dates)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8054 (unless no-ranges
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8055 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8056 (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
8057 (setq ts1 (substring (match-string 1) 0 10)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8058 ts2 (substring (match-string 2) 0 10)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8059 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
8060 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
8061 (while (< (setq day1 (1+ day1)) day2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8062 (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
8063 (setq dates (sort dates '<))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8064 (when empty
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8065 (while (setq day (pop dates))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8066 (setq day2 (car dates))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8067 (push day dates1)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8068 (when (and day2 empty)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8069 (if (or (eq empty t)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8070 (and (numberp empty) (<= (- day2 day) empty)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8071 (while (< (setq day (1+ day)) day2)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8072 (push (list day) dates1))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8073 (push (cons :omitted (- day2 day)) dates1))))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8074 (setq dates (nreverse dates1)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8075 dates)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8076
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8077 ;;;###autoload
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8078 (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
8079 "Return diary information from org-files.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8080 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
8081 It accesses org files and extracts information from those files to be
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8082 listed in the diary. The function accepts arguments specifying what
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8083 items should be listed. The following arguments are allowed:
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 :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
8086 date range matching the selected date. Deadlines will
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8087 also be listed, on the expiration day.
58792
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 :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
8090 `org-deadline-warning-days'. The listing occurs only
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8091 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
8092 an entry is marked DONE, it is no longer listed.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8093
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8094 :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
8095 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
8096 scheduled earlier and are not yet marked DONE.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8097
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8098 :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
8099 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
8100 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
8101 diary for *today*, not at any other date.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8102
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8103 The call in the diary file should look like this:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8104
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8105 &%%(org-diary) ~/path/to/some/orgfile.org
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8106
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8107 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
8108 all files listed in `org-agenda-files' will be checked automatically:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8109
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8110 &%%(org-diary)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8111
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8112 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
8113 arguments (:deadline :scheduled :timestamp) are used. So the example above may
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8114 also be written as
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8115
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8116 &%%(org-diary :deadline :timestamp :scheduled)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8117
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8118 The function expects the lisp variables `entry' and `date' to be provided
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8119 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
8120 function from a program - use `org-agenda-get-day-entries' instead."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8121 (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
8122 (org-compile-prefix-format 'agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8123 (org-set-sorting-strategy 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8124 (setq args (or args '(:deadline :scheduled :timestamp)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8125 (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
8126 (list entry)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8127 (org-agenda-files t)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8128 file rtn results)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8129 ;; 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
8130 ;; 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
8131 (if org-disable-agenda-to-diary (setq files nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8132 (while (setq file (pop files))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8133 (setq rtn (apply 'org-agenda-get-day-entries file date args))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8134 (setq results (append results rtn)))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
8135 (if results
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
8136 (concat (org-finalize-agenda-entries results) "\n"))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8137 (defvar org-category-table nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8138 (defun org-get-category-table ()
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8139 "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
8140 (let (tbl)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8141 (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8142 (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
8143 (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
8144 (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
8145 tbl))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8146 (defun org-get-category (&optional pos)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8147 "Get the category applying to position POS."
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8148 (if (not org-category-table)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8149 (cond
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8150 ((null org-category)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8151 (setq org-category
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8152 (if buffer-file-name
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8153 (file-name-sans-extension
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8154 (file-name-nondirectory buffer-file-name))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8155 "???")))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8156 ((symbolp org-category) (symbol-name org-category))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8157 (t org-category))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8158 (let ((tbl org-category-table)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8159 (pos (or pos (point))))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8160 (while (and tbl (> (caar tbl) pos))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8161 (pop tbl))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8162 (or (cdar tbl) (cdr (nth (1- (length org-category-table))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8163 org-category-table))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8164
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8165 (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
8166 "Does the work for `org-diary' and `org-agenda'.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8167 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
8168 the one returned by `calendar-current-date'. ARGS are symbols indicating
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8169 which kind of entries should be extracted. For details about these, see
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8170 the documentation of `org-diary'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8171 (setq args (or args '(:deadline :scheduled :timestamp)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8172 (let* ((org-startup-with-deadline-check nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8173 (org-startup-folded nil)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8174 (org-startup-align-all-tables nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8175 (buffer (if (file-exists-p file)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8176 (org-get-agenda-file-buffer file)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8177 (error "No such file %s" file)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8178 arg results rtn)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8179 (if (not buffer)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8180 ;; 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
8181 (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
8182 (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
8183 (unless (org-mode-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8184 (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
8185 (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
8186 (let ((case-fold-search nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8187 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8188 (save-restriction
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8189 (if org-agenda-restrict
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8190 (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
8191 org-agenda-restrict-end)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8192 (widen))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8193 ;; 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
8194 (while (setq arg (pop args))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8195 (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8196 ((and (eq arg :todo)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8197 (equal date (calendar-current-date)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8198 (setq rtn (org-agenda-get-todos))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8199 (setq results (append results rtn)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8200 ((eq arg :timestamp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8201 (setq rtn (org-agenda-get-blocks))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8202 (setq results (append results rtn))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8203 (setq rtn (org-agenda-get-timestamps))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8204 (setq results (append results rtn)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8205 ((eq arg :scheduled)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8206 (setq rtn (org-agenda-get-scheduled))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8207 (setq results (append results rtn)))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8208 ((eq arg :closed)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8209 (setq rtn (org-agenda-get-closed))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8210 (setq results (append results rtn)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8211 ((and (eq arg :deadline)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8212 (equal date (calendar-current-date)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8213 (setq rtn (org-agenda-get-deadlines))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8214 (setq results (append results rtn))))))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8215 results))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8216
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8217 (defun org-entry-is-done-p ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8218 "Is the current entry marked DONE?"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8219 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8220 (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
8221 (looking-at org-nl-done-regexp))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8222
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8223 (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
8224 "Is the cursor inside a date range?"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8225 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8226 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8227 (catch 'exit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8228 (let ((pos (point)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8229 (skip-chars-backward "^[<\r\n")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8230 (skip-chars-backward "<[")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8231 (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
8232 (>= (match-end 0) pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8233 (throw 'exit t))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8234 (skip-chars-backward "^<[\r\n")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8235 (skip-chars-backward "<[")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8236 (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
8237 (>= (match-end 0) pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8238 (throw 'exit t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8239 nil)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8240
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8241 (defun org-agenda-get-todos ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8242 "Return the TODO information for agenda display."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8243 (let* ((props (list 'face nil
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8244 'done-face 'org-done
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8245 '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
8246 'mouse-face 'highlight
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8247 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8248 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8249 (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
8250 (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
8251 (regexp (concat "[\n\r]\\*+ *\\("
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8252 (if org-select-this-todo-keyword
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8253 (concat "\\<\\(" org-select-this-todo-keyword
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8254 "\\)\\>")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8255 org-not-done-regexp)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8256 "[^\n\r]*\\)"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8257 (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
8258 (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
8259 ; 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
8260 marker priority category tags
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8261 ee txt)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8262 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8263 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8264 (catch :skip
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8265 (save-match-data
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8266 (beginning-of-line)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8267 (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
8268 (looking-at sched-re))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8269 (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
8270 (looking-at deadline-re)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8271 (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
8272
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8273 ;; 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
8274 (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
8275 (throw :skip nil)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8276 (org-agenda-skip)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8277 (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
8278 (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
8279 category (org-get-category)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8280 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
8281 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
8282 priority
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8283 (+ (org-get-priority txt)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8284 (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
8285 (- 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
8286 (length
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8287 (member (match-string 2) org-todo-keywords)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8288 1)))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8289 (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
8290 '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
8291 'priority priority 'category category)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8292 (push txt ee)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8293 (if org-agenda-todo-list-sublevels
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8294 (goto-char (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8295 (org-end-of-subtree 'invisible))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8296 (nreverse ee)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8297
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8298 (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
8299 "No heading for this item in buffer or region.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8300
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8301 (defun org-agenda-get-timestamps ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8302 "Return the date stamp information for agenda display."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8303 (let* ((props (list 'face nil
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8304 '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
8305 'mouse-face 'highlight
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8306 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8307 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8308 (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
8309 (abbreviate-file-name buffer-file-name))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8310 (regexp (regexp-quote
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8311 (substring
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8312 (format-time-string
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8313 (car org-time-stamp-formats)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8314 (apply 'encode-time ; DATE bound by calendar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8315 (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
8316 0 11)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8317 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
8318 ee txt timestr tags)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8319 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8320 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8321 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8322 (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
8323 (org-agenda-skip)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8324 (setq marker (org-agenda-new-marker (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8325 category (org-get-category (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8326 tmp (buffer-substring (max (point-min)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8327 (- (match-beginning 0)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8328 org-ds-keyword-length))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8329 (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8330 timestr (buffer-substring (match-beginning 0) (point-at-eol))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8331 deadlinep (string-match org-deadline-regexp tmp)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8332 scheduledp (string-match org-scheduled-regexp tmp)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8333 donep (org-entry-is-done-p))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8334 (if (string-match ">" timestr)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8335 ;; substring should only run to end of time stamp
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8336 (setq timestr (substring timestr 0 (match-end 0))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8337 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8338 (if (re-search-backward "\\(^\\|\r\\)\\*+" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8339 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8340 (goto-char (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8341 (setq hdmarker (org-agenda-new-marker)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8342 tags (org-get-tags-at))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8343 (looking-at "\\*+[ \t]*\\([^\r\n]+\\)")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8344 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8345 (format "%s%s"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8346 (if deadlinep "Deadline: " "")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8347 (if scheduledp "Scheduled: " ""))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8348 (match-string 1) category tags timestr)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8349 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8350 (setq priority (org-get-priority txt))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8351 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8352 'org-marker marker 'org-hd-marker hdmarker)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8353 (if deadlinep
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8354 (org-add-props txt nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8355 'face (if donep 'org-done 'org-warning)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8356 'undone-face 'org-warning 'done-face 'org-done
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8357 'category category 'priority (+ 100 priority))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8358 (if scheduledp
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8359 (org-add-props txt nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8360 'face 'org-scheduled-today
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8361 'undone-face 'org-scheduled-today 'done-face 'org-done
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8362 'category category 'priority (+ 99 priority))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8363 (org-add-props txt nil 'priority priority 'category category)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8364 (push txt ee))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8365 (outline-next-heading)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8366 (nreverse ee)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8367
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8368 (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
8369 "Return the logged TODO entries for agenda display."
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8370 (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
8371 'org-not-done-regexp org-not-done-regexp
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8372 'keymap org-agenda-keymap
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8373 'help-echo
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8374 (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
8375 (abbreviate-file-name buffer-file-name))))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8376 (regexp (concat
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
8377 "\\<\\(" org-closed-string "\\|" org-clock-string "\\) *\\["
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8378 (regexp-quote
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8379 (substring
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8380 (format-time-string
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8381 (car org-time-stamp-formats)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8382 (apply 'encode-time ; DATE bound by calendar
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8383 (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
8384 1 11))))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
8385 marker hdmarker priority category tags closedp
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8386 ee txt timestr)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8387 (goto-char (point-min))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8388 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8389 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8390 (org-agenda-skip)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8391 (setq marker (org-agenda-new-marker (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8392 closedp (equal (match-string 1) org-closed-string)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8393 category (org-get-category (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8394 timestr (buffer-substring (match-beginning 0) (point-at-eol))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8395 ;; donep (org-entry-is-done-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8396 )
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8397 (if (string-match "\\]" timestr)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8398 ;; substring should only run to end of time stamp
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8399 (setq timestr (substring timestr 0 (match-end 0))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8400 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8401 (if (re-search-backward "\\(^\\|\r\\)\\*+" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8402 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8403 (goto-char (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8404 (setq hdmarker (org-agenda-new-marker)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8405 tags (org-get-tags-at))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8406 (looking-at "\\*+[ \t]*\\([^\r\n]+\\)")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8407 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8408 (if closedp "Closed: " "Clocked: ")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8409 (match-string 1) category tags timestr)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8410 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8411 (setq priority 100000)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8412 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8413 '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
8414 'priority priority 'category category
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8415 'undone-face 'org-warning 'done-face 'org-done)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8416 (push txt ee))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8417 (outline-next-heading)))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8418 (nreverse ee)))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8419
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8420 (defun org-agenda-get-deadlines ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8421 "Return the deadline information for agenda display."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8422 (let* ((wdays org-deadline-warning-days)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8423 (props (list 'mouse-face 'highlight
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8424 '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
8425 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8426 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8427 (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
8428 (abbreviate-file-name buffer-file-name))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8429 (regexp org-deadline-time-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8430 (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
8431 (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
8432 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
8433 ee txt head face)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8434 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8435 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8436 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8437 (org-agenda-skip)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8438 (setq pos (1- (match-beginning 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8439 d2 (time-to-days
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8440 (org-time-string-to-time (match-string 1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8441 diff (- d2 d1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8442 ;; When to show a deadline in the calendar:
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8443 ;; If the expiration is within wdays warning time.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8444 ;; 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
8445 (if (and (< diff wdays) todayp (not (= diff 0)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8446 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8447 (setq category (org-get-category))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8448 (if (re-search-backward "\\(^\\|\r\\)\\*+[ \t]*" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8449 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8450 (goto-char (match-end 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8451 (setq pos1 (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8452 (setq tags (org-get-tags-at pos1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8453 (setq head (buffer-substring-no-properties
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8454 (point)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8455 (progn (skip-chars-forward "^\r\n")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8456 (point))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8457 (if (string-match org-looking-at-done-regexp head)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8458 (setq txt nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8459 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8460 (format "In %3d d.: " diff) head category tags))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8461 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8462 (when txt
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8463 (setq face (cond ((<= diff 0) 'org-warning)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8464 ((<= diff 5) 'org-upcoming-deadline)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8465 (t nil)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8466 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8467 'org-marker (org-agenda-new-marker pos)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8468 'org-hd-marker (org-agenda-new-marker pos1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8469 'priority (+ (- 10 diff) (org-get-priority txt))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8470 'category category
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8471 'face face 'undone-face face 'done-face 'org-done)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8472 (push txt ee))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8473 ee))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8474
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8475 (defun org-agenda-get-scheduled ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8476 "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
8477 (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
8478 '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
8479 'undone-face 'org-scheduled-previously
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8480 'done-face 'org-done
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8481 'mouse-face 'highlight
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8482 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8483 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8484 (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
8485 (abbreviate-file-name buffer-file-name))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8486 (regexp org-scheduled-time-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8487 (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
8488 (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
8489 d2 diff pos pos1 category tags
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8490 ee txt head)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8491 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8492 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8493 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8494 (org-agenda-skip)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8495 (setq pos (1- (match-beginning 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8496 d2 (time-to-days
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8497 (org-time-string-to-time (match-string 1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8498 diff (- d2 d1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8499 ;; When to show a scheduled item in the calendar:
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8500 ;; If it is on or past the date.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8501 (if (and (< diff 0) todayp)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8502 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8503 (setq category (org-get-category))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8504 (if (re-search-backward "\\(^\\|\r\\)\\*+[ \t]*" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8505 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8506 (goto-char (match-end 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8507 (setq pos1 (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8508 (setq tags (org-get-tags-at))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8509 (setq head (buffer-substring-no-properties
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8510 (point)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8511 (progn (skip-chars-forward "^\r\n") (point))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8512 (if (string-match org-looking-at-done-regexp head)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8513 (setq txt nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8514 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8515 (format "Sched.%2dx: " (- 1 diff)) head
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8516 category tags))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8517 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8518 (when txt
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8519 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8520 'org-marker (org-agenda-new-marker pos)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8521 'org-hd-marker (org-agenda-new-marker pos1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8522 'priority (+ (- 5 diff) (org-get-priority txt))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8523 'category category)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8524 (push txt ee))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8525 ee))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8526
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8527 (defun org-agenda-get-blocks ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8528 "Return the date-range information for agenda display."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8529 (let* ((props (list 'face nil
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8530 '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
8531 'mouse-face 'highlight
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8532 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8533 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8534 (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
8535 (abbreviate-file-name buffer-file-name))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8536 (regexp org-tr-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8537 (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
8538 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
8539 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8540 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8541 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8542 (org-agenda-skip)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
8543 (setq pos (point))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8544 (setq timestr (match-string 0)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8545 s1 (match-string 1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8546 s2 (match-string 2)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8547 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
8548 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
8549 (if (and (> (- d0 d1) -1) (> (- d2 d0) -1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8550 ;; Only allow days between the limits, because the normal
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8551 ;; date stamps will catch the limits.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8552 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8553 (setq marker (org-agenda-new-marker (point)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8554 (setq category (org-get-category))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8555 (if (re-search-backward "\\(^\\|\r\\)\\*+" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8556 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8557 (setq hdmarker (org-agenda-new-marker (match-end 1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8558 (goto-char (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8559 (setq tags (org-get-tags-at))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8560 (looking-at "\\*+[ \t]*\\([^\r\n]+\\)")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8561 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8562 (format (if (= d1 d2) "" "(%d/%d): ")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8563 (1+ (- d0 d1)) (1+ (- d2 d1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8564 (match-string 1) category tags
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8565 (if (= d0 d1) timestr))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8566 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8567 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8568 'org-marker marker 'org-hd-marker hdmarker
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8569 'priority (org-get-priority txt) 'category category)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8570 (push txt ee)))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
8571 (goto-char pos)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8572 ;; Sort the entries by expiration date.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8573 (nreverse ee)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8574
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8575 (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
8576 (concat
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8577 "\\(\\<[012]?[0-9]"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8578 "\\(\\(:\\([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
8579 "\\(--?"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8580 "\\(\\<[012]?[0-9]"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8581 "\\(\\(:\\([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
8582 "\\)?")
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8583 "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
8584 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
8585 groups carry important information:
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8586 0 the full match
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8587 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
8588 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
8589
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8590 (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
8591 (concat
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
8592 "<\\([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
8593 "\\([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
8594 "\\(--?"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8595 "<\\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
8596 "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
8597 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
8598 0 the full match
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8599 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
8600 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
8601 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
8602
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8603 (defvar org-prefix-has-time nil
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8604 "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
8605 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
8606 (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
8607 "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
8608 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
8609
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8610 (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
8611 noprefix)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8612 "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
8613 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
8614 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
8615 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
8616 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
8617 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
8618 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
8619 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
8620 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
8621 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
8622 `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
8623 (save-match-data
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8624 ;; 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
8625 (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
8626 (let* ((category (or category
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8627 org-category
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8628 (if buffer-file-name
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8629 (file-name-sans-extension
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8630 (file-name-nondirectory buffer-file-name))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8631 "")))
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
8632 (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
8633 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
8634 (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
8635 (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
8636 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
8637 (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
8638 ;; 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
8639 (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
8640 (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
8641 (setq s0 (match-string 0 ts)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8642 s1 (match-string (if plain 1 2) ts)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8643 s2 (match-string (if plain 8 4) ts))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8644
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8645 ;; 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
8646 ;; 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
8647 ;; 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
8648 (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
8649 (string-match (concat (regexp-quote s0) " *") txt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8650 (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
8651 (= (match-beginning 0) 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8652 t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8653 (setq txt (replace-match "" nil nil txt))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8654 ;; 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
8655 (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
8656 (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
8657
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8658 (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
8659 ;; Tags are in the string
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8660 (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
8661 (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
8662 org-prefix-has-tag))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8663 (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
8664 (setq txt (replace-match
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8665 (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
8666 (match-string 2 txt))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8667 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
8668
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8669 ;; Create the final string
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8670 (if noprefix
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8671 (setq rtn txt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8672 ;; 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
8673 (setq time (cond (s2 (concat s1 "-" s2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8674 (s1 (concat s1 "......"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8675 (t ""))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8676 extra (or extra "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8677 category (if (symbolp category) (symbol-name category) category))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8678 ;; Evaluate the compiled format
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8679 (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
8680
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8681 ;; And finally add the text properties
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8682 (org-add-props rtn nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8683 'category (downcase category) 'tags tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8684 'prefix-length (- (length rtn) (length txt))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8685 'time-of-day time-of-day
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8686 'dotime dotime))))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8687
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8688 (defvar org-agenda-sorting-strategy)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8689 (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
8690
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8691 (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
8692 (catch 'exit
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8693 (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
8694 ((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
8695 ((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
8696 ((member 'weekly (car org-agenda-time-grid)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8697 (t (throw 'exit list)))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8698 (let* ((have (delq nil (mapcar
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8699 (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
8700 list)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8701 (string (nth 1 org-agenda-time-grid))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8702 (gridtimes (nth 2 org-agenda-time-grid))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8703 (req (car org-agenda-time-grid))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8704 (remove (member 'remove-match req))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8705 new time)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8706 (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
8707 ;; don't show empty grid
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8708 (throw 'exit list))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8709 (while (setq time (pop gridtimes))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8710 (unless (and remove (member time have))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8711 (setq time (int-to-string time))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8712 (push (org-format-agenda-item
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8713 nil string "" nil
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8714 (concat (substring time 0 -2) ":" (substring time -2)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8715 new)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8716 (put-text-property
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8717 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
8718 (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
8719 (append new list)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8720 (append list new)))))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8721
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8722 (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
8723 "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
8724 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
8725 `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
8726 (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
8727 (let ((s (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8728 ((stringp org-agenda-prefix-format)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8729 org-agenda-prefix-format)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8730 ((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
8731 (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
8732 (t " %-12:c%?-12t% s")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8733 (start 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8734 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
8735 (while (string-match "%\\(\\?\\)?\\([-+]?[0-9.]*\\)\\([ .;,:!?=|/<>]?\\)\\([cts]\\)"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8736 s start)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8737 (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
8738 '(("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
8739 ("T" . tag))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8740 c (or (match-string 3 s) "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8741 opt (match-beginning 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8742 start (1+ (match-beginning 0)))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8743 (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
8744 (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
8745 (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
8746 (if opt
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8747 (setq varform
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8748 `(if (equal "" ,var)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8749 ""
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8750 (format ,f (if (equal "" ,var) "" (concat ,var ,c)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8751 (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
8752 (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
8753 (push varform vars))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8754 (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
8755 (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
8756
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8757 (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
8758 (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
8759 ;; the old format
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8760 (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
8761 (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
8762 (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
8763 (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
8764 '(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
8765
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8766 (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
8767 "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
8768 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
8769 If not found, return nil.
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8770 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
8771 HH:MM."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8772 (save-match-data
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8773 (when
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8774 (or
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8775 (string-match
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8776 "\\<\\([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
8777 (string-match
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8778 "\\<\\([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
8779 (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
8780 (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
8781 (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
8782 (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
8783 (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
8784 ((= 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
8785 (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
8786 (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
8787 (mod h1 24) h1))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8788 (t0 (+ (* 100 h2) m))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8789 (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
8790 (if (< t0 100) "0" "")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8791 (if (< t0 10) "0" "")
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8792 (int-to-string t0))))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8793 (if string (concat (substring t1 -4 -2) ":" (substring t1 -2)) t0)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8794
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8795 (defun org-finalize-agenda-entries (list &optional nosort)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8796 "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
8797 (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
8798 (if nosort
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8799 list
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8800 (mapconcat 'identity (sort list 'org-entries-lessp) "\n")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8801
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8802 (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
8803 (let (re pl)
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8804 (if (eq x 'line)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8805 (save-excursion
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8806 (beginning-of-line 1)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8807 (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
8808 (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
8809 (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
8810 (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
8811 '(face org-todo))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8812 (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
8813 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
8814 (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
8815 (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
8816 '(face org-todo) x))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8817 x)))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8818
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8819 (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
8820 "Compare the priorities of string A and B."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8821 (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
8822 (pb (or (get-text-property 1 'priority b) 0)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8823 (cond ((> pa pb) +1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8824 ((< pa pb) -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 (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
8828 "Compare the string values of categories of strings A and B."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8829 (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
8830 (cb (or (get-text-property 1 'category b) "")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8831 (cond ((string-lessp ca cb) -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8832 ((string-lessp cb ca) +1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8833 (t nil))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8834
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8835 (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
8836 "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
8837 (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
8838 (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
8839 (cond ((not ta) +1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8840 ((not tb) -1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8841 ((string-lessp ta tb) -1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8842 ((string-lessp tb ta) +1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8843 (t nil))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8844
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8845 (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
8846 "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
8847 (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
8848 (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
8849 (tb (or (get-text-property 1 'time-of-day b) def)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8850 (cond ((< ta tb) -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8851 ((< tb ta) +1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8852 (t nil))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8853
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8854 (defun org-entries-lessp (a b)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8855 "Predicate for sorting agenda entries."
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
8856 ;; The following variables will be used when the form is evaluated.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8857 (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
8858 (time-down (if time-up (- time-up) nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8859 (priority-up (org-cmp-priority a b))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8860 (priority-down (if priority-up (- priority-up) nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8861 (category-up (org-cmp-category a b))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8862 (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
8863 (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
8864 (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
8865 (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
8866 (cdr (assoc
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8867 (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
8868 '((-1 . t) (1 . nil) (nil . nil))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8869
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8870 (defun org-agenda-show-priority ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8871 "Show the priority of the current item.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8872 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
8873 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
8874 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8875 (let* ((pri (get-text-property (point-at-bol) 'priority)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8876 (message "Priority is %d" (if pri pri -1000))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8877
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8878 (defun org-agenda-show-tags ()
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8879 "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
8880 (interactive)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8881 (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
8882 (if tags
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
8883 (message "Tags are :%s:"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8884 (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
8885 (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
8886
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8887 (defun org-agenda-goto (&optional highlight)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8888 "Go to the Org-mode file which contains the item at point."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8889 (interactive)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8890 (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
8891 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8892 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8893 (pos (marker-position marker)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8894 (switch-to-buffer-other-window buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8895 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8896 (goto-char pos)
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
8897 (when (org-mode-p)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8898 (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
8899 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8900 (and (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8901 (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
8902 (and highlight (org-highlight (point-at-bol) (point-at-eol)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8903
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8904 (defun org-agenda-switch-to (&optional delete-other-windows)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8905 "Go to the Org-mode file which contains the item at point."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8906 (interactive)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8907 (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
8908 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8909 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8910 (pos (marker-position marker)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8911 (switch-to-buffer buffer)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8912 (and delete-other-windows (delete-other-windows))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8913 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8914 (goto-char pos)
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
8915 (when (org-mode-p)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8916 (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
8917 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8918 (and (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8919 (org-flag-heading nil)))))) ; show the next heading
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8920
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8921 (defun org-agenda-goto-mouse (ev)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8922 "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
8923 (interactive "e")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8924 (mouse-set-point ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8925 (org-agenda-goto))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8926
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8927 (defun org-agenda-show ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8928 "Display the Org-mode file which contains the item at point."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8929 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8930 (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
8931 (org-agenda-goto t)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8932 (select-window win)))
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-recenter (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8935 "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
8936 (interactive "P")
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 (recenter arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8940 (select-window win)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8941
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8942 (defun org-agenda-show-mouse (ev)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8943 "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
8944 (interactive "e")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8945 (mouse-set-point ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8946 (org-agenda-show))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8947
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
8948 (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
8949 "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
8950 (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
8951 (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
8952
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8953 (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
8954 (error "Command not allowed in this line"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8955
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8956 (defvar org-last-heading-marker (make-marker)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8957 "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
8958 by a remote command from the agenda.")
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8959
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8960 (defun org-agenda-todo (&optional arg)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8961 "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
8962 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
8963 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
8964 (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
8965 (org-agenda-check-no-diary)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8966 (let* ((col (current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8967 (marker (or (get-text-property (point) 'org-marker)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8968 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8969 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8970 (pos (marker-position marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8971 (hdmarker (get-text-property (point) 'org-hd-marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8972 (buffer-read-only nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8973 newhead)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8974 (with-current-buffer buffer
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8975 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8976 (goto-char pos)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8977 (org-show-context 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8978 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8979 (and (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8980 (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
8981 (org-todo arg)
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8982 (and (bolp) (forward-char 1))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8983 (setq newhead (org-get-heading))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8984 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8985 (org-back-to-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8986 (move-marker org-last-heading-marker (point))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8987 (beginning-of-line 1)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8988 (save-excursion
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8989 (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
8990 (move-to-column col)))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8991
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8992 (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
8993 "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
8994 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
8995 `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
8996 `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
8997 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
8998 the new TODO state."
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8999 (let* (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
9000 (save-excursion
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9001 (goto-char (point-max))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9002 (beginning-of-line 1)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
9003 (while (not finish)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9004 (setq finish (bobp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9005 (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
9006 (equal m hdmarker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9007 (setq props (text-properties-at (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9008 dotime (get-text-property (point) 'dotime)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
9009 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
9010 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
9011 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
9012 pl (get-text-property (point) 'prefix-length)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9013 undone-face (get-text-property (point) 'undone-face)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9014 done-face (get-text-property (point) 'done-face))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9015 (move-to-column pl)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9016 (if (looking-at ".*")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9017 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9018 (replace-match new t t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9019 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9020 (add-text-properties (point-at-bol) (point-at-eol) props)
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
9021 (when fixface
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
9022 (add-text-properties
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
9023 (point-at-bol) (point-at-eol)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
9024 (list 'face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
9025 (if org-last-todo-state-is-todo
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
9026 undone-face done-face))))
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
9027 (org-agenda-highlight-todo 'line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9028 (beginning-of-line 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9029 (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
9030 (beginning-of-line 0)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9031 (org-finalize-agenda)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9032
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9033 (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
9034 "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
9035 (let ((buffer-read-only))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9036 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9037 (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
9038 (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
9039 (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
9040 (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
9041 (goto-char (match-beginning 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9042 (insert (org-add-props
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9043 (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
9044 (current-column))) ?\ )
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9045 (text-properties-at (point))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9046
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9047 (defun org-agenda-priority-up ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9048 "Increase the priority of line at point, also in Org-mode file."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9049 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9050 (org-agenda-priority 'up))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9051
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9052 (defun org-agenda-priority-down ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9053 "Decrease the priority of line at point, also in Org-mode file."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9054 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9055 (org-agenda-priority 'down))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9056
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9057 (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
9058 "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
9059 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
9060 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
9061 (interactive)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9062 (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
9063 (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
9064 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9065 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9066 (pos (marker-position marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9067 (hdmarker (get-text-property (point) 'org-hd-marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9068 (buffer-read-only nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9069 newhead)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9070 (with-current-buffer buffer
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9071 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9072 (goto-char pos)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9073 (org-show-context 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9074 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9075 (and (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9076 (org-flag-heading nil))) ; show the next heading
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9077 (funcall 'org-priority force-direction)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
9078 (end-of-line 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9079 (setq newhead (org-get-heading)))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9080 (org-agenda-change-all-lines newhead hdmarker)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9081 (beginning-of-line 1)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9082
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9083 (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
9084 "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
9085 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
9086 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
9087 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
9088 (interactive)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9089 (let (tags)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9090 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9091 (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
9092 (save-match-data
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9093 (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
9094 (condition-case nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9095 (while t
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9096 (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
9097 (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
9098 (org-match-string-no-properties 1) ":")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9099 tags)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9100 (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
9101 (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
9102 (error nil))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9103 tags))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9104
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9105 (defun org-agenda-set-tags ()
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9106 "Set tags for the current headline."
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9107 (interactive)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9108 (org-agenda-check-no-diary)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9109 (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
9110 (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
9111 (org-agenda-error)))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9112 (buffer (marker-buffer hdmarker))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9113 (pos (marker-position hdmarker))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9114 (buffer-read-only nil)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9115 newhead)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9116 (with-current-buffer buffer
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9117 (widen)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9118 (goto-char pos)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9119 (org-show-context 'agenda)
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9120 (save-excursion
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9121 (and (outline-next-heading)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9122 (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
9123 (call-interactively 'org-set-tags)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9124 (end-of-line 1)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9125 (setq newhead (org-get-heading)))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9126 (org-agenda-change-all-lines newhead hdmarker)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9127 (beginning-of-line 1)))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9128
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9129 (defun org-agenda-date-later (arg &optional what)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9130 "Change the date of this item to one day later."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9131 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9132 (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
9133 (org-agenda-check-no-diary)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9134 (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
9135 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9136 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9137 (pos (marker-position marker)))
62076
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
9138 (with-current-buffer buffer
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9139 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9140 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9141 (if (not (org-at-timestamp-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9142 (error "Cannot find time stamp"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9143 (org-timestamp-change arg (or what 'day))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9144 (message "Time stamp changed to %s" org-last-changed-timestamp))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9145
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9146 (defun org-agenda-date-earlier (arg &optional what)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9147 "Change the date of this item to one day earlier."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9148 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9149 (org-agenda-date-later (- arg) what))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9150
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9151 (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
9152 "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
9153 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
9154 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
9155 (interactive "P")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9156 (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
9157 (org-agenda-check-no-diary)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9158 (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
9159 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9160 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9161 (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
9162 (with-current-buffer buffer
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9163 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9164 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9165 (if (not (org-at-timestamp-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9166 (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
9167 (org-time-stamp arg)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9168 (message "Time stamp changed to %s" org-last-changed-timestamp))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9169
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9170 (defun org-agenda-schedule (arg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9171 "Schedule the item at point."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9172 (interactive "P")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9173 (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
9174 (org-agenda-check-no-diary)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9175 (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
9176 (org-agenda-error)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9177 (buffer (marker-buffer marker))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9178 (pos (marker-position marker))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9179 (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
9180 ts)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9181 (with-current-buffer buffer
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9182 (widen)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9183 (goto-char pos)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9184 (setq ts (org-schedule))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9185 (message "Item scheduled for %s" ts))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9186
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9187 (defun org-agenda-deadline (arg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9188 "Schedule the item at point."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9189 (interactive "P")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9190 (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
9191 (org-agenda-check-no-diary)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9192 (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
9193 (org-agenda-error)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9194 (buffer (marker-buffer marker))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9195 (pos (marker-position marker))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9196 (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
9197 ts)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9198 (with-current-buffer buffer
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9199 (widen)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9200 (goto-char pos)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9201 (setq ts (org-deadline))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9202 (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
9203
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9204 (defun org-get-heading ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9205 "Return the heading of the current entry, without the stars."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9206 (save-excursion
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9207 (and (memq (char-before) '(?\n ?\r)) (skip-chars-forward "^\n\r"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9208 (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
9209 (looking-at "[\r\n]\\*+[ \t]+\\([^\r\n]*\\)"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9210 (match-string 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9211 "")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9212
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9213 (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
9214 "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
9215 (interactive "P")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9216 (org-agenda-check-no-diary)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9217 (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
9218 (org-agenda-error)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9219 (pos (marker-position marker)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9220 (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
9221 (widen)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9222 (goto-char pos)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9223 (org-clock-in))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9224
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9225 (defun org-agenda-diary-entry ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9226 "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
9227 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
9228 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9229 (org-agenda-check-type t 'agenda 'timeline)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9230 (require 'diary-lib)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
9231 (let* ((char (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9232 (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
9233 (read-char-exclusive)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9234 (cmd (cdr (assoc char
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9235 '((?d . insert-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9236 (?w . insert-weekly-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9237 (?m . insert-monthly-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9238 (?y . insert-yearly-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9239 (?a . insert-anniversary-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9240 (?b . insert-block-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9241 (?c . insert-cyclic-diary-entry)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9242 (oldf (symbol-function 'calendar-cursor-to-date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9243 (point (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9244 (mark (or (mark t) (point))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9245 (unless cmd
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9246 (error "No command associated with <%c>" char))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9247 (unless (and (get-text-property point 'day)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9248 (or (not (equal ?b char))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9249 (get-text-property mark 'day)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9250 (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
9251 ;; We implement this by hacking the `calendar-cursor-to-date' function
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9252 ;; and the `calendar-mark-ring' variable. Saves a lot of code.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9253 (let ((calendar-mark-ring
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9254 (list (calendar-gregorian-from-absolute
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9255 (or (get-text-property mark 'day)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9256 (get-text-property point 'day))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9257 (unwind-protect
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9258 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9259 (fset 'calendar-cursor-to-date
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9260 (lambda (&optional error)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9261 (calendar-gregorian-from-absolute
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9262 (get-text-property point 'day))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9263 (call-interactively cmd))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9264 (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
9265
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9266
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9267 (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
9268 "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
9269 the cursor position."
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9270 (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
9271 (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
9272 (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
9273 (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
9274 (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
9275 (point (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9276 (date (calendar-gregorian-from-absolute
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9277 (get-text-property point 'day)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9278 (displayed-day (extract-calendar-day date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9279 (displayed-month (extract-calendar-month date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9280 (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
9281 (unwind-protect
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9282 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9283 (fset 'calendar-cursor-to-date
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9284 (lambda (&optional error)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9285 (calendar-gregorian-from-absolute
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9286 (get-text-property point 'day))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9287 (call-interactively cmd))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9288 (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
9289
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9290 (defun org-agenda-phases-of-moon ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9291 "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
9292 (interactive)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9293 (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
9294
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9295 (defun org-agenda-holidays ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9296 "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
9297 (interactive)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9298 (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
9299
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9300 (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
9301 "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
9302 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
9303 `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
9304 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
9305 (interactive "P")
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9306 (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
9307 (calendar-latitude (if arg nil calendar-latitude))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9308 (calendar-location-name
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9309 (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
9310 (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
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-goto-calendar ()
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9313 "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
9314 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9315 (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
9316 (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
9317 (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
9318 (date (calendar-gregorian-from-absolute day))
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
9319 (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
9320 (view-calendar-holidays-initially nil)
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
9321 (view-diary-entries-initially nil))
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
9322 (calendar)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9323 (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
9324
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9325 (defun org-calendar-goto-agenda ()
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9326 "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
9327 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
9328 (interactive)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9329 (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
9330 (calendar-cursor-to-date))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9331 nil))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9332
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9333 (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
9334 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9335 (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
9336 (let ((day (get-text-property (point) 'day))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9337 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
9338 (unless day
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9339 (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
9340 (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
9341 (setq s (concat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9342 "Gregorian: " (calendar-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9343 "ISO: " (calendar-iso-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9344 "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
9345 "Julian: " (calendar-julian-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9346 "Astron. JD: " (calendar-astro-date-string date)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9347 " (Julian date number at noon UTC)\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9348 "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
9349 "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
9350 "French: " (calendar-french-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9351 "Mayan: " (calendar-mayan-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9352 "Coptic: " (calendar-coptic-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9353 "Ethiopic: " (calendar-ethiopic-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9354 "Persian: " (calendar-persian-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9355 "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
9356 (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
9357 (princ s))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9358 (if (fboundp 'fit-window-to-buffer)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9359 (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
9360
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9361 ;;; Tags
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9362
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9363 (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
9364 "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
9365 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
9366 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
9367 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
9368 are included in the output."
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9369 (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
9370 (mapconcat 'regexp-quote
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9371 (nreverse (cdr (reverse org-todo-keywords)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9372 "\\|")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9373 "\\>\\)\\)? *\\(.*?\\)\\(:[A-Za-z_@0-9:]+:\\)?[ \t]*$")) ;;FIXME: was [\n\r] instead of $
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9374 (props (list 'face nil
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9375 'done-face 'org-done
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9376 'undone-face nil
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9377 'mouse-face 'highlight
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9378 '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
9379 'keymap org-agenda-keymap
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9380 'help-echo
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9381 (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
9382 (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
9383 (case-fold-search nil)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9384 lspos
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9385 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
9386 todo marker)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9387 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9388 (goto-char (point-min))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9389 (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
9390 (while (re-search-forward re nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9391 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9392 (and (eq action 'agenda) (org-agenda-skip))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9393 (setq todo (if (match-end 1) (match-string 2))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9394 tags (if (match-end 4) (match-string 4)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9395 (goto-char (setq lspos (1+ (match-beginning 0))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9396 (setq level (funcall outline-level)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9397 category (org-get-category))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9398 (setq i llast llast level)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9399 ;; remove tag lists from same and sublevels
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9400 (while (>= i level)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9401 (when (setq entry (assoc i tags-alist))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9402 (setq tags-alist (delete entry tags-alist)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9403 (setq i (1- i)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9404 ;; add the nex tags
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9405 (when tags
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9406 (setq tags (mapcar 'downcase (org-split-string tags ":"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9407 tags-alist
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9408 (cons (cons level tags) tags-alist)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9409 ;; compile tags for current headline
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9410 (setq tags-list
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9411 (if org-use-tag-inheritance
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9412 (apply 'append (mapcar 'cdr tags-alist))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9413 tags))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9414 (when (and (or (not todo-only) todo)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9415 (eval matcher)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9416 (or (not org-agenda-skip-archived-trees)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9417 (not (member org-archive-tag tags-list))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9418 ;; list this headline
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9419 (if (eq action 'sparse-tree)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9420 (progn
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9421 (org-show-context 'tags-tree))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9422 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9423 ""
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9424 (concat
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9425 (if org-tags-match-list-sublevels
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9426 (make-string (1- level) ?.) "")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9427 (org-get-heading))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9428 category tags-list))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9429 (goto-char lspos)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9430 (setq marker (org-agenda-new-marker))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9431 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9432 'org-marker marker 'org-hd-marker marker 'category category)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9433 (push txt rtn))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9434 ;; 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
9435 (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
9436 (when (and (eq action 'sparse-tree)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9437 (not org-sparse-tree-open-archived-trees))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9438 (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
9439 (nreverse rtn)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9440
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9441 (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
9442 "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
9443 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
9444 \"+WORK+URGENT-WITHBOSS\"."
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9445 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9446 (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
9447
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9448 (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
9449 "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
9450 (unless match
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9451 ;; 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
9452 (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
9453 (or org-tag-alist
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9454 org-last-tags-completion-table))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9455 (setq match (completing-read
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9456 "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
9457 '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
9458
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9459 ;; 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
9460 (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
9461 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
9462 orterms term orlist)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9463 (if (string-match "/+" match)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9464 ;; 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
9465 (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
9466 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
9467 ;; only matching tags
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9468 (setq tagsmatch match todomatch nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9469
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9470 ;; Make the tags matcher
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9471 (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
9472 (setq tagsmatcher t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9473 (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
9474 (while (setq term (pop orterms))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9475 (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
9476 (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
9477 (equal (match-string 1 term) "-"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9478 tag (match-string 2 term)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9479 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
9480 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
9481 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
9482 (push mm tagsmatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9483 (push (if (> (length tagsmatcher) 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9484 (cons 'and tagsmatcher)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9485 (car tagsmatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9486 orlist)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9487 (setq tagsmatcher nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9488 (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
9489
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9490 ;; 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
9491 (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
9492 (setq todomatcher t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9493 (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
9494 (while (setq term (pop orterms))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9495 (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
9496 (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
9497 (equal (match-string 1 term) "-"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9498 kwd (match-string 2 term)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9499 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
9500 mm (list 'equal 'todo kwd)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9501 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
9502 (push mm todomatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9503 (push (if (> (length todomatcher) 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9504 (cons 'and todomatcher)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9505 (car todomatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9506 orlist)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9507 (setq todomatcher nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9508 (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
9509 (cons 'or orlist) (car orlist))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9510
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9511 ;; 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
9512 (setq matcher (if todomatcher
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9513 (list 'and tagsmatcher todomatcher)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9514 tagsmatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9515 (cons match0 matcher)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9516
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9517 ;;;###autoload
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9518 (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
9519 "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
9520 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
9521 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9522 (org-compile-prefix-format 'tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9523 (org-set-sorting-strategy 'tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9524 (let* ((org-tags-match-list-sublevels
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9525 (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
9526 (win (selected-window))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9527 (completion-ignore-case t)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9528 rtn rtnall files file pos matcher
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9529 buffer)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9530 (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
9531 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
9532 (org-prepare-agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9533 (setq org-agenda-redo-command
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9534 (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
9535 (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
9536 (setq files (org-agenda-files)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9537 rtnall nil)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9538 (while (setq file (pop files))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9539 (catch 'nextfile
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9540 (org-check-agenda-file file)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9541 (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
9542 (org-get-agenda-file-buffer file)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9543 (error "No such file %s" file)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9544 (if (not buffer)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9545 ;; 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
9546 (setq rtn (list
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9547 (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
9548 rtnall (append rtnall rtn))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9549 (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
9550 (unless (org-mode-p)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9551 (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
9552 (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
9553 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9554 (save-restriction
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9555 (if org-agenda-restrict
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9556 (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
9557 org-agenda-restrict-end)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9558 (widen))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9559 (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
9560 (setq rtnall (append rtnall rtn))))))))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9561 (insert "Headlines with TAGS match: ")
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9562 (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
9563 (list 'face 'org-level-3))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9564 (setq pos (point))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9565 (insert match "\n")
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9566 (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
9567 (setq pos (point))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9568 (unless org-agenda-multi
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9569 (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
9570 (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
9571 (when rtnall
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9572 (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
9573 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9574 (org-fit-agenda-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9575 (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
9576 (org-finalize-agenda)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9577 (setq buffer-read-only t)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9578 (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
9579
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9580 (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
9581 (defvar org-tags-overlay (org-make-overlay 1 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9582 ;(org-overlay-put org-tags-overlay 'face 'org-warning)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9583 (org-detatch-overlay org-tags-overlay)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9584
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9585 (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
9586 "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
9587 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
9588 (interactive "P")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9589 (let* ((re (concat "^" outline-regexp))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9590 (col (current-column))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9591 (current (org-get-tags))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9592 table current-tags inherited-tags ; computed below when needed
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9593 tags empty invis)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9594 (if arg
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9595 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9596 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9597 (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
9598 (while (re-search-forward re nil t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9599 (org-set-tags nil t)))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9600 (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
9601 (if just-align
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9602 (setq tags current)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9603 (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
9604 org-last-tags-completion-table table
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9605 current-tags (org-split-string current ":")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9606 inherited-tags (nreverse
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9607 (nthcdr (length current-tags)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9608 (nreverse (org-get-tags-at))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9609 tags
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9610 (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
9611 (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
9612 (delq nil (mapcar 'cdr table))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9613 (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
9614 (let ((org-add-colon-after-tag-completion t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9615 (completing-read "Tags: " 'org-tags-completion-function
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9616 nil nil current 'org-tags-history))))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9617 (while (string-match "[-+&]+" tags)
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
9618 (setq tags (replace-match ":" t t tags))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
9619 (unless (setq empty (string-match "\\`[\t ]*\\'" tags))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
9620 (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
9621 (unless (string-match "^:" tags) (setq tags (concat ":" tags))))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9622 (if (equal current "")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9623 (progn
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9624 (end-of-line 1)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9625 (or empty (insert " ")))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9626 (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
9627 (setq invis (org-invisible-p))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9628 (looking-at (concat ".*?\\([ \t]*" (regexp-quote current) "\\)[ \t]*"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9629 (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
9630 (goto-char (match-beginning 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9631 (insert (if empty "" " ")))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9632 (if (equal tags "")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9633 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9634 (beginning-of-line 1)
71567
f008b5943ba4 (org-set-tags): Keep single space after stars.
Carsten Dominik <dominik@science.uva.nl>
parents: 71563
diff changeset
9635 (skip-chars-forward "*")
f008b5943ba4 (org-set-tags): Keep single space after stars.
Carsten Dominik <dominik@science.uva.nl>
parents: 71563
diff changeset
9636 (if (= (char-after) ?\ ) (forward-char 1))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9637 (and (re-search-forward "[ \t]+$" (point-at-eol) t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9638 (replace-match "")))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9639 (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
9640 (move-to-column (max (current-column)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9641 (if (> org-tags-column 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9642 org-tags-column
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9643 (- (- org-tags-column) (length tags))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9644 t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9645 (insert tags)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9646 (if (and (not invis) (org-invisible-p))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9647 (outline-flag-region (point) (point-at-bol) nil))) ; show
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9648 (move-to-column col))))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9649
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9650 (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
9651 (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
9652 (confirm (lambda (x) (stringp (car x)))))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9653 (if (string-match "^\\(.*[-+:&|]\\)\\([^-+:&|]*\\)$" string)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9654 (setq s1 (match-string 1 string)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9655 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
9656 (setq s1 "" s2 string))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9657 (cond
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9658 ((eq flag nil)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9659 ;; try completion
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9660 (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
9661 (if (stringp rtn)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9662 (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
9663 (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
9664 (assoc rtn ctable))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9665 ":" "")))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9666 )
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9667 ((eq flag t)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9668 ;; all-completions
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9669 (all-completions s2 ctable confirm)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9670 )
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9671 ((eq flag 'lambda)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9672 ;; exact match?
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9673 (assoc s2 ctable)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9674 ))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9675
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9676 (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
9677 "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
9678 (insert (format "%-12s" (concat kwd ":"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9679 (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
9680 (or end "")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9681
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9682 (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
9683 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9684 (goto-line 3)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9685 (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
9686 (replace-match ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9687 (when flag
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9688 (end-of-line 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9689 (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
9690 (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
9691
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9692 (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
9693 (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
9694 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9695 (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
9696 'secondary-selection)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9697 (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
9698 (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
9699
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9700 (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
9701 "Fast tag selection with single keys.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9702 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
9703 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
9704 possibly with grouping information.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9705 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
9706 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
9707 (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
9708 (lambda (x)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9709 (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
9710 table)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9711 (buf (current-buffer))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9712 (buffer-tags nil)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9713 (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
9714 (ncol (/ (- (window-width) 4) fwidth))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9715 (i-face 'org-done)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9716 (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
9717 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
9718 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
9719 (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
9720 groups ingroup)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9721 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9722 (beginning-of-line 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9723 (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
9724 (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
9725 ov-end (match-end 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9726 ov-prefix "")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9727 (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
9728 ov-end (1+ ov-start))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9729 (skip-chars-forward "^\n\r")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9730 (setq ov-prefix
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9731 (concat
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9732 (buffer-substring (1- (point)) (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9733 (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
9734 " "
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9735 (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
9736 (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
9737 (save-window-excursion
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9738 ;; 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
9739 (delete-other-windows)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9740 (split-window-vertically)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9741 (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
9742 (erase-buffer)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9743 (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
9744 (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
9745 (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
9746 (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
9747 (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
9748 (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
9749 (cond
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9750 ((equal e '(:startgroup))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9751 (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
9752 (when (not (= cnt 0))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9753 (setq cnt 0)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9754 (insert "\n"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9755 (insert "{ "))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9756 ((equal e '(:endgroup))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9757 (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
9758 (insert "}\n"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9759 (t
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9760 (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
9761 (if (cdr e)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9762 (setq c (cdr e))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9763 ;; automatically assign a character.
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9764 (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
9765 (downcase (substring
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9766 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
9767 (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
9768 (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
9769 (setq char (1+ char)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9770 (setq c2 c1))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9771 (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
9772 (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
9773 (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
9774 (cond
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9775 ((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
9776 ((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
9777 (t nil))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9778 (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
9779 (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
9780 (- fwidth 4 (length tg)) ?\ ))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9781 (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
9782 (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
9783 (insert "\n")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9784 (if ingroup (insert " "))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9785 (setq cnt 0)))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9786 (setq ntable (nreverse ntable))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9787 (insert "\n")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9788 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9789 (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
9790 (setq rtn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9791 (catch 'exit
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9792 (while t
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9793 (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
9794 (if groups " [!] no groups" ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9795 (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
9796 (cond
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9797 ((= 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
9798 ((= c ?!)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9799 (setq groups nil)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9800 (goto-char (point-min))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9801 (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
9802 ((= c ?\C-c)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9803 (org-fast-tag-show-exit
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9804 (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
9805 ((or (= c ?\C-g)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9806 (and (= c ?q) (not (rassoc c ntable))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9807 (org-detatch-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
9808 (setq quit-flag t))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9809 ((= c ?\ )
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9810 (setq current nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9811 (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
9812 ((= c ?\t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9813 (condition-case nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9814 (setq tg (completing-read
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9815 "Tag: "
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9816 (or buffer-tags
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9817 (with-current-buffer buf
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9818 (org-get-buffer-tags)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9819 (quit (setq tg "")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9820 (when (string-match "\\S-" tg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9821 (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
9822 (if (member tg current)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9823 (setq current (delete tg current))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9824 (push tg current)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9825 (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
9826 ((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
9827 (if (member tg current)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9828 (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
9829 (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
9830 (if (member tg g)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9831 (mapcar (lambda (x)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9832 (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
9833 g)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9834 (push tg current))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9835 (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
9836
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9837 ;; Create a sorted list
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9838 (setq current
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9839 (sort current
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9840 (lambda (a b)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9841 (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
9842 (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
9843 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9844 (beginning-of-line 2)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9845 (delete-region (point) (point-at-eol))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9846 (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
9847 (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
9848 (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
9849 (setq tg (match-string 1))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9850 (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
9851 (list 'face
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9852 (cond
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9853 ((member tg current) c-face)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9854 ((member tg inherited) i-face)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9855 (t nil)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9856 (goto-char (point-min)))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9857 (org-detatch-overlay org-tags-overlay)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9858 (if rtn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9859 (mapconcat 'identity current ":")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9860 nil))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9861
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9862 (defun org-get-tags ()
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9863 "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
9864 (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
9865 (error "Not on a heading"))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9866 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9867 (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
9868 (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
9869 (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
9870 "")))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9871
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9872 (defun org-get-buffer-tags ()
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9873 "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
9874 (let (tags)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9875 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9876 (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
9877 (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
9878 (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
9879 (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
9880 (mapcar 'list tags)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9881
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9882 ;;; Link Stuff
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9883
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9884 (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
9885 "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
9886 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
9887 which the link should point.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9888
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9889 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
9890 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
9891 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
9892 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
9893 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
9894 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
9895 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
9896 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
9897 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
9898 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
9899 which see.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9900
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9901 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
9902 `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
9903 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
9904 buffer with \\[org-insert-link].")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9905
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9906 (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
9907 "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
9908
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9909 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
9910 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
9911 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
9912 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
9913 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
9914 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
9915 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
9916 other functions from trying.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9917
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9918 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
9919 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
9920 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
9921 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
9922
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9923 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
9924 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
9925
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9926 (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
9927
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9928 (defun org-find-file-at-mouse (ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9929 "Open file link or URL at mouse."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9930 (interactive "e")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9931 (mouse-set-point ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9932 (org-open-at-point 'in-emacs))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9933
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9934 (defun org-open-at-mouse (ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9935 "Open file link or URL at mouse."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9936 (interactive "e")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9937 (mouse-set-point ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9938 (org-open-at-point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9939
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9940 (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
9941 "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
9942 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
9943
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9944 ;; 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
9945 (defun org-open-at-point (&optional in-emacs)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9946 "Open link at or after point.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9947 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
9948 the end of the current subtree.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9949 Normally, files will be opened by an appropriate application. If the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9950 optional argument IN-EMACS is non-nil, Emacs will visit the file."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9951 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9952 (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
9953 (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
9954 (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
9955 (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
9956 (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
9957 (catch 'match
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
9958 (save-excursion
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9959 (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
9960 (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
9961 (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
9962 (<= (match-beginning 0) pos)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9963 (>= (match-end 0) pos))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9964 (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
9965 (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
9966 (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
9967 (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
9968 (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
9969 (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
9970 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
9971 (setq type "thisfile"
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9972 path link))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9973 (throw 'match t)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9974
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9975 (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
9976 (setq type "thisfile"
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9977 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
9978 (1+ (point)) (point))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9979 path (buffer-substring
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9980 (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
9981 (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
9982 (throw 'match t))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9983
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9984 (save-excursion
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9985 (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
9986 (if (equal (char-before) ?<) (backward-char 1))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9987 (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
9988 (looking-at org-plain-link-re)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9989 (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
9990 (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
9991 (<= (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
9992 (>= (match-end 0) pos)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9993 (setq type (match-string 1)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
9994 path (match-string 2))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
9995 (throw 'match t)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
9996 (save-excursion
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9997 (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
9998 (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
9999 (setq type "tags"
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10000 path (match-string 1))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10001 (while (string-match ":" path)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10002 (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
10003 (throw 'match t)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10004 (save-excursion
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10005 (skip-chars-backward "a-zA-Z_")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10006 (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
10007 (looking-at org-camel-regexp))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10008 (setq type "camel" path (match-string 0))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10009 (if (equal (char-before) ?*)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10010 (setq path (concat "*" path))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10011 (throw 'match t)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10012 (unless path
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10013 (error "No link found"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10014 ;; Remove any trailing spaces in path
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10015 (if (string-match " +\\'" path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10016 (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
10017
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10018 (cond
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10019
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10020 ((equal type "mailto")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10021 (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
10022 (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
10023 (address path) (subject "") a)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10024 (if (string-match "\\(.*\\)::\\(.*\\)" path)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10025 (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
10026 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
10027 (while args
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10028 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10029 ((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
10030 (t (setq a (pop args))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10031 (if (string-match "%a" a)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10032 (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
10033 (if (string-match "%s" a)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10034 (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
10035 (push a args1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10036 (apply cmd (nreverse args1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10037
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10038 ((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
10039 (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
10040
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10041 ((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
10042 (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
10043 ((or (string= type "camel")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10044 (string= type "thisfile"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10045 (if in-emacs
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10046 (switch-to-buffer-other-window
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10047 (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
10048 (org-mark-ring-push))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10049 (org-link-search
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10050 path
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10051 (cond ((equal in-emacs '(4)) 'occur)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10052 ((equal in-emacs '(16)) 'org-occur)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10053 (t nil))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10054
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10055 ((string= type "file")
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
10056 (if (string-match "::\\([0-9]+\\)\\'" path)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10057 (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
10058 path (substring path 0 (match-beginning 0)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10059 (if (string-match "::\\(.+\\)\\'" path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10060 (setq search (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10061 path (substring path 0 (match-beginning 0)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10062 (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
10063
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10064 ((string= type "news")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10065 (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
10066
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10067 ((string= type "bbdb")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10068 (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
10069
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10070 ((string= type "info")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10071 (org-follow-info-link path))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10072
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10073 ((string= type "gnus")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10074 (let (group article)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10075 (if (not (string-match "\\`\\([^#]+\\)\\(#\\(.*\\)\\)?" path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10076 (error "Error in Gnus link"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10077 (setq group (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10078 article (match-string 3 path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10079 (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
10080
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10081 ((string= type "vm")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10082 (let (folder article)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10083 (if (not (string-match "\\`\\([^#]+\\)\\(#\\(.*\\)\\)?" path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10084 (error "Error in VM link"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10085 (setq folder (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10086 article (match-string 3 path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10087 ;; 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
10088 (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
10089
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10090 ((string= type "wl")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10091 (let (folder article)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10092 (if (not (string-match "\\`\\([^#]+\\)\\(#\\(.*\\)\\)?" path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10093 (error "Error in Wanderlust link"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10094 (setq folder (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10095 article (match-string 3 path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10096 (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
10097
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10098 ((string= type "mhe")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10099 (let (folder article)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10100 (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
10101 (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
10102 (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
10103 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
10104 (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
10105
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10106 ((string= type "rmail")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10107 (let (folder article)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10108 (if (not (string-match "\\`\\([^#]+\\)\\(#\\(.*\\)\\)?" path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10109 (error "Error in RMAIL link"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10110 (setq folder (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10111 article (match-string 3 path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10112 (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
10113
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10114 ((string= type "shell")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10115 (let ((cmd path))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10116 (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
10117 (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
10118 (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
10119 (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
10120 (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
10121 (funcall org-confirm-shell-link-function
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10122 (format "Execute \"%s\" in shell? "
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10123 (org-add-props cmd nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10124 'face 'org-warning))))
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
10125 (progn
70161
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
10126 (message "Executing %s" cmd)
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
10127 (shell-command cmd))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10128 (error "Abort"))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10129
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10130 ((string= type "elisp")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10131 (let ((cmd path))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10132 (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
10133 (funcall org-confirm-elisp-link-function
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10134 (format "Execute \"%s\" as elisp? "
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10135 (org-add-props cmd nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10136 'face 'org-warning))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10137 (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
10138 (error "Abort"))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10139
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10140 (t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10141 (browse-url-at-point))))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10142
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10143 (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
10144 "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
10145 (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
10146 (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
10147 (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
10148 (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
10149 (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
10150 rpl)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10151 (if (not as)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10152 link
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10153 (setq rpl (cdr as))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10154 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10155 ((symbolp rpl) (funcall rpl tag))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10156 ((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
10157 (t (concat rpl tag)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10158 link))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10159
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10160 (defun org-link-search (s &optional type)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10161 "Search for a link search option.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10162 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
10163 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
10164 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
10165 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
10166 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
10167 in all files."
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10168 (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
10169 (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
10170 (pos (point))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10171 (pre "") (post "")
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10172 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
10173 (cond
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
10174 ;; 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
10175 ((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
10176 ;; Now try the builtin stuff
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10177 ((save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10178 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10179 (and
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10180 (re-search-forward
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10181 (concat "<<" (regexp-quote s0) ">>") nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10182 (setq pos (match-beginning 0))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10183 ;; 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
10184 (goto-char pos))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10185 ((string-match "^/\\(.*\\)/$" s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10186 ;; A regular expression
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10187 (cond
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
10188 ((org-mode-p)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10189 (org-occur (match-string 1 s)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10190 ;;((eq major-mode 'dired-mode)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10191 ;; (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
10192 (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
10193 ((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
10194 t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10195 ;; 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
10196 (when (equal (string-to-char s) ?*)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10197 ;; 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
10198 (setq pre "^\\*+[ \t]*\\(?:\\sw+\\)?[ \t]*"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10199 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
10200 s (substring s 1)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10201 (remove-text-properties
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10202 0 (length s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10203 '(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
10204 ;; 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
10205 (setq words
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10206 (if camel
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10207 (org-camel-to-words s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10208 (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
10209 re0 (concat "\\(<<" (regexp-quote s0) ">>\\)")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10210 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
10211 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
10212 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
10213 re1 (concat pre re2 post)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10214 re3 (concat pre re4 post)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10215 re5 (concat pre ".*" re4)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10216 re2 (concat pre re2)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10217 re2a (concat pre re2a)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10218 re4 (concat pre re4)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10219 reall (concat "\\(" re0 "\\)\\|\\(" re1 "\\)\\|\\(" re2
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10220 "\\)\\|\\(" re3 "\\)\\|\\(" re4 "\\)\\|\\("
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10221 re5 "\\)"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10222 ))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10223 (cond
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10224 ((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
10225 ((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
10226 (t (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10227 (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
10228 (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
10229 (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
10230 (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
10231 (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
10232 (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
10233 (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
10234 )
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
10235 (goto-char (match-beginning 1))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10236 (goto-char pos)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10237 (error "No match")))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10238 (t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10239 ;; Normal string-search
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10240 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10241 (if (search-forward s nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10242 (goto-char (match-beginning 0))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10243 (error "No match"))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10244 (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
10245
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10246 (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
10247 "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
10248 (catch 'exit
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10249 (let (p1)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10250 (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
10251 (setq p1 (point))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10252 (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
10253 (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
10254 (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
10255 (<= (match-beginning 0) p1)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10256 (>= (match-end 0) p1))))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10257 (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
10258 (throw 'exit (point)))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10259 (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
10260
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10261 (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
10262 "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
10263 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10264 ((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
10265 buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10266 ((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
10267 (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
10268 ;; 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
10269 buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10270 (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
10271 (let* ((bn (buffer-name buffer))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10272 (ibn (concat bn "(Clone)"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10273 (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
10274 (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
10275 ib))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10276
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10277 (defun org-do-occur (regexp &optional cleanup)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10278 "Call the Emacs command `occur'.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10279 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
10280 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
10281 to read."
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10282 (occur regexp)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10283 (when cleanup
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10284 (let ((cwin (selected-window)) win beg end)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10285 (when (setq win (get-buffer-window "*Occur*"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10286 (select-window win))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10287 (goto-char (point-min))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10288 (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
10289 (setq beg (match-end 0))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10290 (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
10291 (setq end (1- (match-beginning 0)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10292 (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
10293 (goto-char (point-min))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10294 (select-window cwin))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10295
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10296 (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
10297 "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
10298 (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
10299 "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
10300 ;; 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
10301 (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
10302 (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
10303 (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
10304 (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
10305 org-mark-ring)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10306
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10307 (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
10308 "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
10309 (interactive)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10310 (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
10311 (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
10312 (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
10313 (or pos (point))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10314 (or buffer (current-buffer)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10315 (message
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10316 (substitute-command-keys
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10317 "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
10318
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10319 (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
10320 "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
10321 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
10322 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
10323 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
10324 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
10325 onto the ring."
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10326 (interactive "p")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10327 (let (p m)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10328 (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
10329 (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
10330 (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
10331 (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
10332 (setq m (car p))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10333 (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
10334 (goto-char m)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10335 (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
10336
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10337 (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
10338 "Split \"CamelCaseWords\" to (\"Camel\" \"Case\" \"Words\")."
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10339 (let ((case-fold-search nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10340 words)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10341 (while (string-match "[a-z][A-Z]" s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10342 (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
10343 (setq s (substring s (1+ (match-beginning 0)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10344 (nreverse (cons s words))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10345
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10346 (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
10347 (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
10348 (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
10349 s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10350 (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
10351 (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
10352 (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
10353 s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10354
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10355 (defun org-follow-timestamp-link ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10356 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10357 ((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
10358 (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
10359 (t1 (match-string 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10360 (t2 (match-string 2)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10361 (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
10362 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
10363 (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
10364 ((org-at-timestamp-p t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10365 (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
10366 (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
10367 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10368 (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
10369
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10370
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10371 (defun org-follow-bbdb-link (name)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10372 "Follow a BBDB link to NAME."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10373 (require 'bbdb)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10374 (let ((inhibit-redisplay t)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10375 (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
10376 (catch 'exit
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10377 ;; 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
10378 (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
10379 (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
10380 ;; 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
10381 (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
10382 (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
10383 ;; 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
10384 (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
10385 (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
10386 ;; 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
10387 (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
10388 (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
10389 ;; 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
10390 (bbdb name nil)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10391 (when (= 0 (buffer-size (get-buffer "*BBDB*")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10392 (delete-window (get-buffer-window "*BBDB*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10393 (error "No matching BBDB record")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10394
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10395
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10396 (defun org-follow-info-link (name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10397 "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
10398 (if (or (string-match "\\(.*\\)::?\\(.*\\)" name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10399 (string-match "\\(.*\\)" name))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10400 (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10401 (require 'info)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10402 (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
10403 (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
10404 (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
10405 (message (concat "Could not open: " name))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10406
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10407 (defun org-follow-gnus-link (&optional group article)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10408 "Follow a Gnus link to GROUP and ARTICLE."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10409 (require 'gnus)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10410 (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
10411 (if gnus-other-frame-object (select-frame gnus-other-frame-object))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10412 (if group (gnus-fetch-group group))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10413 (if article
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10414 (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
10415 (if (fboundp 'gnus-summary-insert-cached-articles)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10416 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10417 (gnus-summary-insert-cached-articles)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10418 (gnus-summary-goto-article article nil 'force))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10419 (message "Message could not be found.")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10420
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10421 (defun org-follow-vm-link (&optional folder article readonly)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10422 "Follow a VM link to FOLDER and ARTICLE."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10423 (require 'vm)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10424 (setq article (org-add-angle-brackets article))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10425 (if (string-match "^//\\([a-zA-Z]+@\\)?\\([^:]+\\):\\(.*\\)" folder)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10426 ;; ange-ftp or efs or tramp access
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10427 (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
10428 (host (match-string 2 folder))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10429 (file (match-string 3 folder)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10430 (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10431 ((featurep 'tramp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10432 ;; use tramp to access the file
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10433 (if (featurep 'xemacs)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10434 (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
10435 (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
10436 (t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10437 ;; use ange-ftp or efs
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10438 (require (if (featurep 'xemacs) 'efs 'ange-ftp))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10439 (setq folder (format "/%s@%s:%s" user host file))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10440 (when folder
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10441 (funcall (cdr (assq 'vm org-link-frame-setup)) folder readonly)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10442 (sit-for 0.1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10443 (when article
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10444 (vm-select-folder-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10445 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10446 (let ((case-fold-search t))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10447 (goto-char (point-min))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10448 (if (not (re-search-forward
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10449 (concat "^" "message-id: *" (regexp-quote article))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10450 (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
10451 (vm-isearch-update)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10452 (vm-isearch-narrow)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10453 (vm-beginning-of-message)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10454 (vm-summarize)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10455
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10456 (defun org-follow-wl-link (folder article)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10457 "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
10458 (setq article (org-add-angle-brackets article))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10459 (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
10460 (if article (wl-summary-jump-to-msg-by-message-id article ">"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10461 (wl-summary-redisplay))
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-rmail-link (folder article)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10464 "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
10465 (setq article (org-add-angle-brackets article))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10466 (let (message-number)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10467 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10468 (save-window-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10469 (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
10470 (setq message-number
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10471 (save-restriction
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10472 (widen)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10473 (goto-char (point-max))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10474 (if (re-search-backward
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10475 (concat "^Message-ID:\\s-+" (regexp-quote
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10476 (or article "")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10477 nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10478 (rmail-what-message))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10479 (if message-number
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10480 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10481 (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
10482 (rmail-show-message message-number)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10483 message-number)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10484 (error "Message not found"))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10485
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10486 ;; 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
10487 (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
10488 "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
10489 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
10490 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10491 (let* ((folder
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10492 (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
10493 mh-current-folder
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10494 ;; 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
10495 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
10496 (end-index
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10497 (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
10498 (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
10499 )
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10500 ;; 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
10501 ;; 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
10502 (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
10503 (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
10504 (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
10505 (save-window-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10506 (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
10507 (progn
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10508 (pop-to-buffer folder)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10509 (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
10510 )
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10511 ))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10512 (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
10513 )
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10514 folder
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10515 )
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10516 )))
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 (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
10519 "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
10520 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10521 (mh-index-previous-folder)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10522 (re-search-forward "^\\(+.*\\)$" nil t)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10523 (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
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 ()
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 "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
10527 use sequences."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10528 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10529 (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
10530 mh-current-folder
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10531 ;; 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
10532 mh-show-folder-buffer)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10533
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10534 (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
10535 "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
10536 use sequences."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10537 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10538 (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
10539 (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
10540 ;; 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
10541 (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
10542
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10543 (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
10544 "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
10545 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
10546 idea..."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10547 (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
10548 (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
10549 (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
10550 (header-field))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10551 (with-current-buffer buffer
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10552 (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
10553 (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
10554 (mh-header-display)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10555 (mh-show-header-display))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10556 (set-buffer buffer)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10557 (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
10558 (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
10559 (mh-show)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10560 (mh-show-show))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10561 header-field)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10562
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10563 (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
10564 "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
10565 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
10566 `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
10567 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
10568 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
10569 folders."
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
10570 (require 'mh-e)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10571 (require 'mh-search)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10572 (require 'mh-utils)
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
10573 (mh-find-path)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10574 (if (not article)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10575 (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
10576 (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
10577 (mh-search-choose)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10578 (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
10579 (progn
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10580 (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
10581 (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
10582 (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
10583 (kill-this-buffer)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10584 (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
10585 (mh-search "+" article))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10586 (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
10587 (mh-show-msg 1)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10588 (kill-this-buffer)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10589 (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
10590
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10591 ;; BibTeX links
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10592
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10593 ;; 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
10594 ;; file links to BibTeX database entries.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10595
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10596 (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
10597 "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
10598 (when (eq major-mode 'bibtex-mode)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10599 ;; 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
10600 ;; 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
10601 ;; 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
10602 (let ((bibtex-autokey-names 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10603 (bibtex-autokey-names-stretch 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10604 (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
10605 (bibtex-autokey-name-separator " & ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10606 (bibtex-autokey-additional-names " et al.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10607 (bibtex-autokey-year-length 4)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10608 (bibtex-autokey-name-year-separator " ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10609 (bibtex-autokey-titlewords 3)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10610 (bibtex-autokey-titleword-separator " ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10611 (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
10612 (bibtex-autokey-titleword-length 'infty)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10613 (bibtex-autokey-year-title-separator ": "))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10614 (setq description (bibtex-generate-autokey)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10615 ;; 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
10616 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10617 (bibtex-beginning-of-entry)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10618 (cdr (assoc "=key=" (bibtex-parse-entry))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10619
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10620 (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
10621 "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
10622 (when (eq major-mode 'bibtex-mode)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10623 ;; 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
10624 ;; 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
10625 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10626 (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
10627 (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
10628 (goto-char (match-beginning 0)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10629 (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
10630 ;; 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
10631 (let ((b (current-buffer)) (p (point)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10632 ;; 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
10633 (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
10634 (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
10635 (bibtex-url)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10636 (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
10637 ;; 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
10638 t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10639
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10640 ;; 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
10641 (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
10642 (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
10643
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10644 ;; end of Bibtex link setup
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10645
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10646 (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
10647 "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
10648 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
10649 for this link."
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10650 (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
10651 (save-excursion
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10652 (goto-char (point-min))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
10653 (let ((re (concat "\\([^[]\\)<\\("
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
10654 "\\(" (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
10655 "\\):"
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10656 "[^" org-non-link-chars "]+\\)>"))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10657 l1 l2 (cnt 0))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10658 (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
10659 (setq cnt (1+ cnt)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10660 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
10661 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
10662 (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
10663 (if (equal l1 l2)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10664 (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
10665 (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
10666 (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
10667
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10668 (defun org-open-file (path &optional in-emacs line search)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10669 "Open the file at PATH.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10670 First, this expands any special file name abbreviations. Then the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10671 configuration variable `org-file-apps' is checked if it contains an
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10672 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
10673 If no application is found, Emacs simply visits the file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10674 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
10675 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
10676 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
10677 opened in Emacs.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10678 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
10679 (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
10680 (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
10681 buffer-file-name
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10682 (substitute-in-file-name (expand-file-name path))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10683 (apps (append org-file-apps (org-default-apps)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10684 (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
10685 (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
10686 (dfile (downcase file))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10687 (old-buffer (current-buffer))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10688 (old-pos (point))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10689 (old-mode major-mode)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10690 ext cmd)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10691 (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
10692 (setq ext (match-string 1 dfile))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10693 (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
10694 (setq ext (match-string 1 dfile))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10695 (if in-emacs
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10696 (setq cmd 'emacs)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10697 (setq cmd (or (and remp (cdr (assoc 'remote apps)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10698 (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
10699 (cdr (assoc ext apps))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10700 (cdr (assoc t apps)))))
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10701 (when (eq cmd 'mailcap)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10702 (require 'mailcap)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10703 (mailcap-parse-mailcaps)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10704 (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
10705 (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
10706 (if (stringp command)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10707 (setq cmd command)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10708 (setq cmd 'emacs))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10709 (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
10710 (not (file-exists-p file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10711 (not org-open-non-existing-files))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10712 (error "No such file: %s" file))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10713 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10714 ((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
10715 ;; 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
10716 (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
10717 (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
10718 (setq cmd (format cmd (shell-quote-argument file)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10719 (save-window-excursion
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10720 (shell-command (concat cmd " &"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10721 ((or (stringp cmd)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10722 (eq cmd 'emacs))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10723 ; (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
10724 ; (funcall (cdr (assq 'file org-link-frame-setup)) file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10725 (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
10726 (if line (goto-line line)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10727 (if search (org-link-search search))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10728 ((consp cmd)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10729 (eval cmd))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10730 (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
10731 (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
10732 (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
10733 (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
10734 (org-mark-ring-push old-pos old-buffer))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10735
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10736 (defun org-default-apps ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10737 "Return the default applications for this operating system."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10738 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10739 ((eq system-type 'darwin)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10740 org-file-apps-defaults-macosx)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10741 ((eq system-type 'windows-nt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10742 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
10743 (t org-file-apps-defaults-gnu)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10744
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10745 (defun org-expand-file-name (path)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10746 "Replace special path abbreviations and expand the file name."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10747 (expand-file-name path))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10748
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10749 (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
10750 (defun org-file-remote-p (file)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10751 "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
10752 Return non-nil if the location is indeed remote.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10753
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10754 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
10755 on the system \"/user@host:\"."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10756 (cond ((fboundp 'file-remote-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10757 (file-remote-p file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10758 ((fboundp 'tramp-handle-file-remote-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10759 (tramp-handle-file-remote-p file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10760 ((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
10761 (string-match (car ange-ftp-name-format) file))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10762 t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10763 (t nil)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10764
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10765 (defvar org-insert-link-history nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10766 "Minibuffer history for links inserted with `org-insert-link'.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10767
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10768 (defvar org-stored-links nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10769 "Contains the links stored with `org-store-link'.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10770
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10771 ;;;###autoload
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10772 (defun org-store-link (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10773 "\\<org-mode-map>Store an org-link to the current location.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10774 This link can later be inserted into an org-buffer with
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10775 \\[org-insert-link].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10776 For some link types, a prefix arg is interpreted:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10777 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
10778 For file links, arg negates `org-context-in-file-links'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10779 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10780 (let (link cpltxt desc description search txt (pos (point)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10781 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10782
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10783 ((eq major-mode 'bbdb-mode)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10784 (setq cpltxt (concat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10785 "bbdb:"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10786 (or (bbdb-record-name (bbdb-current-record))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10787 (bbdb-record-company (bbdb-current-record))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10788 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
10789
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10790 ((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
10791 (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
10792 (file-name-nondirectory Info-current-file)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10793 ":" Info-current-node))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10794 (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
10795 ":" Info-current-node)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10796
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10797 ((eq major-mode 'calendar-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10798 (let ((cd (calendar-cursor-to-date)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10799 (setq link
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10800 (format-time-string
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10801 (car org-time-stamp-formats)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10802 (apply 'encode-time
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10803 (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
10804 nil nil nil))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10805
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10806 ((or (eq major-mode 'vm-summary-mode)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10807 (eq major-mode 'vm-presentation-mode))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10808 (and (eq major-mode 'vm-presentation-mode) (vm-summarize))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10809 (vm-follow-summary-cursor)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10810 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10811 (vm-select-folder-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10812 (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
10813 (folder buffer-file-name)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10814 (subject (vm-su-subject message))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10815 (author (vm-su-full-name message))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10816 (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
10817 (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
10818 (setq folder (abbreviate-file-name folder))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10819 (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
10820 folder)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10821 (setq folder (replace-match "" t t folder)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10822 (setq cpltxt (concat author " on: " subject))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10823 (setq link (org-make-link "vm:" folder "#" message-id)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10824
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10825 ((eq major-mode 'wl-summary-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10826 (let* ((msgnum (wl-summary-message-number))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10827 (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
10828 msgnum 'message-id))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10829 (wl-message-entity (elmo-msgdb-overview-get-entity
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10830 msgnum (wl-summary-buffer-msgdb)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10831 (author (wl-summary-line-from)) ; FIXME: correct?
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10832 (subject "???")) ; FIXME:
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10833 (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
10834 (setq cpltxt (concat author " on: " subject))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10835 (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
10836 "#" message-id))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10837
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10838 ((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
10839 (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
10840 (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
10841 (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
10842 (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
10843 (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
10844 (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
10845 (org-remove-angle-brackets
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10846 (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
10847
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10848 ((eq major-mode 'rmail-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10849 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10850 (save-restriction
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10851 (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
10852 (let ((folder buffer-file-name)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10853 (message-id (mail-fetch-field "message-id"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10854 (author (mail-fetch-field "from"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10855 (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
10856 (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
10857 (setq cpltxt (concat author " on: " subject))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10858 (setq link (org-make-link "rmail:" folder "#" message-id))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10859
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10860 ((eq major-mode 'gnus-group-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10861 (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
10862 (gnus-group-group-name)) ; version
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10863 ((fboundp 'gnus-group-name)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10864 (gnus-group-name))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10865 (t "???"))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10866 (setq cpltxt (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10867 (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
10868 "http://groups.google.com/groups?group="
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10869 "gnus:")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10870 group)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10871 link (org-make-link cpltxt))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10872
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10873 ((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
10874 (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
10875 (and (eq major-mode 'gnus-article-mode) (gnus-article-show-summary))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10876 (gnus-summary-beginning-of-article)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10877 (let* ((group (car gnus-article-current))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10878 (article (cdr gnus-article-current))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10879 (header (gnus-summary-article-header article))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10880 (author (mail-header-from header))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10881 (message-id (mail-header-id header))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10882 (date (mail-header-date header))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10883 (subject (gnus-summary-subject-string)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10884 (setq cpltxt (concat author " on: " subject))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10885 (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
10886 (setq link
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10887 (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10888 cpltxt "\n "
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10889 (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
10890 (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
10891 (setq link (org-make-link "gnus:" group
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10892 "#" (number-to-string article))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10893
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10894 ((eq major-mode 'w3-mode)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10895 (setq cpltxt (url-view-url t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10896 link (org-make-link cpltxt)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10897 ((eq major-mode 'w3m-mode)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10898 (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
10899 link (org-make-link w3m-current-url)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10900
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10901 ((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
10902 'org-create-file-search-functions))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10903 (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
10904 "::" search))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
10905 (setq cpltxt (or description link)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10906
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10907 ((eq major-mode 'image-mode)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10908 (setq cpltxt (concat "file:"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10909 (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
10910 link (org-make-link cpltxt)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10911
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10912 ((eq major-mode 'dired-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10913 ;; 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
10914 (setq cpltxt (concat "file:"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10915 (abbreviate-file-name
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10916 (expand-file-name
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10917 (dired-get-filename nil t))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10918 link (org-make-link cpltxt)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10919
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10920 ((and buffer-file-name (org-mode-p))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10921 ;; Just link to current headline
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10922 (setq cpltxt (concat "file:"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10923 (abbreviate-file-name buffer-file-name)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10924 ;; Add a context search string
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10925 (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
10926 ;; Check if we are on a target
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10927 (if (save-excursion
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10928 (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
10929 (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
10930 (looking-at "<<\\(.*?\\)>>")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10931 (<= (match-beginning 0) pos)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10932 (>= (match-end 0) pos)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10933 (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
10934 (setq txt (cond
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10935 ((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
10936 ((org-region-active-p)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10937 (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
10938 (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
10939 (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
10940 (setq cpltxt
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10941 (concat cpltxt "::"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10942 (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
10943 (org-make-org-heading-camel txt)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10944 (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
10945 desc "NONE"))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10946 (if (string-match "::\\'" cpltxt)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10947 (setq cpltxt (substring cpltxt 0 -2)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10948 (setq link (org-make-link cpltxt)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10949
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10950 (buffer-file-name
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10951 ;; Just link to this file here.
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10952 (setq cpltxt (concat "file:"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10953 (abbreviate-file-name buffer-file-name)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10954 ;; Add a context string
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10955 (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
10956 (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
10957 (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
10958 (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
10959 ;; 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
10960 (when (string-match "\\S-" txt)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10961 (setq cpltxt
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10962 (concat cpltxt "::"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10963 (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
10964 (org-make-org-heading-camel txt)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10965 (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
10966 desc "NONE")))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10967 (setq link (org-make-link cpltxt)))
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10968
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10969 ((interactive-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10970 (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
10971
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10972 (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
10973
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10974 (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
10975 (setq link (or link cpltxt)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10976 desc (or desc cpltxt))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10977 (if (equal desc "NONE") (setq desc nil))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10978
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10979 (if (and (interactive-p) link)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10980 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10981 (setq org-stored-links
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10982 (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
10983 (message "Stored: %s" (or cpltxt link)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10984 (org-make-link-string link desc))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10985
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10986 (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
10987 "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
10988 (interactive)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10989 (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
10990 (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
10991 ;; 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
10992 (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
10993 (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
10994 (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
10995 (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
10996 (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
10997 (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
10998 org-comment-string "\\)") s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10999 (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
11000 (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
11001 (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
11002 (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
11003 (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
11004 (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
11005 (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
11006
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11007 (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
11008 "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
11009 (interactive)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11010 (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
11011 (unless (and string (not heading))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11012 ;; 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
11013 (if (string-match org-todo-regexp s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11014 (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
11015 (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
11016 (setq s (replace-match "" t t s)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11017 (setq s (org-trim s))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11018 (if (string-match (concat "^\\(" org-quote-string "\\|"
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11019 org-comment-string "\\)") s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11020 (setq s (replace-match "" t t s)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11021 (while (string-match org-ts-regexp s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11022 (setq s (replace-match "" t t s))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11023 (while (string-match "[^a-zA-Z_ \t]+" s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11024 (setq s (replace-match " " t t s)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11025 (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
11026 (mapconcat 'capitalize (org-split-string s "[ \t]+") "")))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11027
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
11028 (defun org-make-link (&rest strings)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
11029 "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
11030 (format org-link-format (apply 'concat strings)))
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
11031
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11032 (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
11033 "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
11034 (if (eq org-link-style 'plain)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11035 (if (equal description link)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11036 link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11037 (concat description "\n" link))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11038 (when (stringp description)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11039 ;; 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
11040 (while (string-match "\\[\\|\\]" description)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11041 (setq description (replace-match "" t t description))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11042 (when (equal (org-link-escape link) description)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11043 ;; No description needed, it is identical
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11044 (setq description nil))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11045 (when (and (not description)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11046 (not (equal link (org-link-escape link))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11047 (setq description link))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11048 (concat "[[" (org-link-escape link) "]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11049 (if description (concat "[" description "]") "")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11050 "]")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11051
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11052 (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
11053 "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
11054
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11055 (defun org-link-escape (text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11056 "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
11057 (when text
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11058 (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
11059 org-link-escape-chars "\\|")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11060 (while (string-match re text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11061 (setq text
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11062 (replace-match
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11063 (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
11064 t t text)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11065 text)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11066
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11067 (defun org-link-unescape (text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11068 "Reverse the action of `org-link-escape'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11069 (when text
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11070 (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
11071 org-link-escape-chars "\\|")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11072 (while (string-match re text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11073 (setq text
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11074 (replace-match
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11075 (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
11076 t t text)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11077 text)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11078
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11079 (defun org-xor (a b)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11080 "Exclusive or."
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
11081 (if a (not b) b))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11082
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11083 (defun org-get-header (header)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11084 "Find a header field in the current buffer."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11085 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11086 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11087 (let ((case-fold-search t) s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11088 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11089 ((eq header 'from)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11090 (if (re-search-forward "^From:\\s-+\\(.*\\)" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11091 (setq s (match-string 1)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11092 (while (string-match "\"" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11093 (setq s (replace-match "" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11094 (if (string-match "[<(].*" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11095 (setq s (replace-match "" t t s))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11096 ((eq header 'message-id)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11097 (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
11098 (setq s (match-string 1))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11099 ((eq header 'subject)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11100 (if (re-search-forward "^subject:\\s-+\\(.*\\)" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11101 (setq s (match-string 1)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11102 (if (string-match "\\`[ \t\]+" s) (setq s (replace-match "" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11103 (if (string-match "[ \t\]+\\'" s) (setq s (replace-match "" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11104 s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11105
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11106
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11107 (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
11108 "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
11109 (while (string-match "<" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11110 (setq s (replace-match "%3C" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11111 (while (string-match ">" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11112 (setq s (replace-match "%3E" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11113 (while (string-match "@" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11114 (setq s (replace-match "%40" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11115 s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11116
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11117 (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
11118 "Insert a link. At the prompt, enter the link.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11119
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11120 Completion can be used to select a link previously stored with
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11121 `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
11122 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
11123 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
11124 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
11125
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11126 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
11127 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
11128
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11129 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
11130 and description parts.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11131
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11132 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
11133 selected using completion. The path to the file will be relative to
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11134 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
11135 subdirectory. Otherwise, the link will be the absolute path as
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11136 completed in the minibuffer (i.e. normally ~/path/to/file).
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11137
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11138 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
11139 is in the current directory or below.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
11140 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
11141 `org-keep-stored-link-after-insertion'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11142 (interactive "P")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11143 (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
11144 (cond
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11145 ((save-excursion
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11146 (skip-chars-forward "^]\n\r")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11147 (and (re-search-backward "\\[\\[" nil t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11148 (looking-at org-bracket-link-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11149 (<= (match-beginning 0) pos)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11150 (>= (match-end 0) pos)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11151 ;; 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
11152 (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
11153 (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
11154 (setq link (read-string "Link: "
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
11155 (org-link-unescape
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11156 (org-match-string-no-properties 1)))))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
11157 ((equal complete-file '(4))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11158 ;; Completing read for file names.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11159 (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
11160 (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
11161 (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
11162 (expand-file-name ".")))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11163 (cond
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11164 ((equal complete-file '(16))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11165 (setq link (org-make-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11166 "file:"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11167 (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
11168 ((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
11169 (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
11170 ((string-match (concat "^" (regexp-quote pwd) "\\(.+\\)")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11171 (expand-file-name file))
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:" (match-string 1 (expand-file-name file)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11174 (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
11175 (t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11176 ;; Read link, with completion for stored links.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11177 (setq link (org-completing-read
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11178 "Link: " org-stored-links nil nil nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11179 org-insert-link-history
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11180 (or (car (car org-stored-links)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11181 (setq entry (assoc link org-stored-links))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
11182 (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
11183 (not org-keep-stored-link-after-insertion))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11184 (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
11185 org-stored-links)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11186 (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
11187 desc (or desc (nth 2 entry)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11188
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11189 (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
11190 ;; 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
11191 (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
11192
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11193 ;; 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
11194 ;; 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
11195 (when (and buffer-file-name
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11196 (string-match "\\<file:\\(.+?\\)::\\([^>]+\\)" link))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11197 (let* ((path (match-string 1 link))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11198 (case-fold-search nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11199 (search (match-string 2 link)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11200 (save-match-data
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11201 (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
11202 ;; 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
11203 (setq link search)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11204
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11205 ;; 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
11206 (when (string-match "\\<file:\\(.*\\)" link)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11207 (let* ((path (match-string 1 link))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11208 (case-fold-search nil))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11209 (cond
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11210 ((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
11211 (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
11212 ((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
11213 (setq path (expand-file-name path)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11214 ((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
11215 (setq path (file-relative-name path)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11216 (t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11217 (save-match-data
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
11218 (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
11219 (file-name-as-directory
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11220 (expand-file-name "."))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11221 (expand-file-name path))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11222 ;; 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
11223 (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
11224 (match-end 0)))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11225 (setq link (concat "file:" path))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11226
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11227 (setq desc (read-string "Description: " desc))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11228 (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
11229 (if remove (apply 'delete-region remove))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11230 (insert (org-make-link-string link desc))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11231
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11232 (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
11233 (let ((minibuffer-local-completion-map
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11234 (copy-keymap minibuffer-local-completion-map)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11235 (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
11236 (apply 'completing-read args)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11237
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11238 ;;; Hooks for remember.el
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11239
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11240 (defvar org-finish-function nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11241
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11242 ;;;###autoload
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11243 (defun org-remember-annotation ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11244 "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
11245 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
11246 remember.el, then the annotations should include a link compatible with the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11247 conventions in Org-mode. This function returns such a link."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11248 (org-store-link nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11249
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11250 (defconst org-remember-help
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11251 "Select a destination location for the note.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11252 UP/DOWN=headline TAB=cycle visibility [Q]uit RET/<left>/<right>=Store
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11253 RET at beg-of-buf -> Append to file as level 2 headline
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11254 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
11255 <left>/<right> -> before/after current headline, same headings level")
58792
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 ;;;###autoload
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11258 (defun org-remember-apply-template ()
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11259 "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
11260 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
11261 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
11262 (if org-remember-templates
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11263
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11264 (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
11265 (cdar org-remember-templates)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11266 (message "Select template: %s"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11267 (mapconcat
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11268 (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
11269 org-remember-templates " "))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11270 (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
11271 (tpl (car entry))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11272 (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
11273 (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
11274 (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
11275 (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
11276 (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
11277 (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
11278 (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
11279 (v-n user-full-name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11280 )
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11281 (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
11282 (insert tpl) (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11283 (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
11284 (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
11285 (save-match-data
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11286 (let* ((lead (buffer-substring
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11287 (point-at-bol) (match-beginning 0))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11288 (setq v-i (mapconcat 'identity
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11289 (org-split-string initial "\n")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11290 (concat "\n" lead))))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11291 (replace-match
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11292 (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
11293 t t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11294 (let ((org-startup-folded nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11295 (org-startup-with-deadline-check nil))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11296 (org-mode))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11297 (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
11298 (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
11299 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11300 (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
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)))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
11304 (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
11305
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11306 ;;;###autoload
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11307 (defun org-remember-handler ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11308 "Store stuff from remember.el into an org file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11309 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
11310 of `org-default-notes-file' is used.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11311 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
11312 file the text at a specific location.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11313 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
11314 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
11315 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
11316
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11317 Key Cursor position Note gets inserted
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11318 -----------------------------------------------------------------------------
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11319 RET buffer-start as level 2 heading at end of file
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11320 RET on headline as sublevel of the heading at cursor
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11321 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
11322 Or use prefix arg to specify level manually.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11323 <left> on headline as same level, before current heading
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11324 <right> on headline as same level, after current heading
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 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
11327 the default file. This way your current train of thought is not
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11328 interrupted, in accordance with the principles of remember.el. But with
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11329 little extra effort, you can push it directly to the correct location.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11330
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11331 Before being stored away, the function ensures that the text has a
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11332 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
11333 is constructed from the current date and some additional data.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11334
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11335 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
11336 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
11337 \(i.e. after the stars).
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11338
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
11339 See also the variable `org-reverse-note-order'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11340 (catch 'quit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11341 (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
11342 (fastp current-prefix-arg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11343 (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
11344 (visiting (find-buffer-visiting file))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11345 (org-startup-with-deadline-check nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11346 (org-startup-folded nil)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11347 (org-startup-align-all-tables nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11348 spos level indent reversed)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11349 ;; 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
11350 ;; into an org tree.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11351 (let* ((lines (split-string txt "\n"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11352 first)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11353 ;; remove empty lines at the beginning
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11354 (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
11355 (setq lines (cdr lines)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11356 (setq first (car lines) lines (cdr lines))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11357 (if (string-match "^\\*+" first)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11358 ;; Is already a headline
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11359 (setq indent nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11360 ;; 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
11361 (setq lines (cons first lines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11362 first (concat "* " (current-time-string)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11363 " (" (remember-buffer-desc) ")")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11364 indent " "))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11365 (if (and org-adapt-indentation indent)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11366 (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
11367 (setq txt (concat first "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11368 (mapconcat 'identity lines "\n"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11369 ;; Find the file
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11370 (if (not visiting)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11371 (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
11372 (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
11373 (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
11374 (not (re-search-forward "^\\* " nil t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11375 (insert "\n* Notes\n")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11376 (setq reversed (org-notes-order-reversed-p))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11377 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11378 (save-restriction
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11379 (widen)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11380 ;; Ask the User for a location
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11381 (setq spos (if fastp 1 (org-get-location
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11382 (current-buffer)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11383 org-remember-help)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11384 (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
11385 ; not handle this note
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11386 (goto-char spos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11387 (cond ((bobp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11388 ;; 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
11389 (save-restriction
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11390 (widen)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11391 (goto-char (if reversed (point-min) (point-max)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11392 (if (not (bolp)) (newline))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11393 (org-paste-subtree 2 txt)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11394 ((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
11395 ;; 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
11396 (org-back-to-heading)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
11397 (setq level (funcall outline-level))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11398 (if reversed
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11399 (outline-end-of-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11400 (outline-end-of-subtree))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11401 (if (not (bolp)) (newline))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11402 (beginning-of-line 1)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11403 (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
11404 (t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11405 ;; 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
11406 ;; org-paste-subtree or from prefix arg
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11407 (org-paste-subtree current-prefix-arg txt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11408 (when remember-save-after-remembering
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11409 (save-buffer)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11410 (if (not visiting) (kill-buffer (current-buffer)))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11411 t) ;; return t to indicate that we took care of this note.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11412
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11413 (defun org-get-org-file ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11414 "Read a filename, with default directory `org-directory'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11415 (let ((default (or org-default-notes-file remember-data-file)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11416 (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
11417 (file-name-as-directory org-directory)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11418 default)))
58792
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-notes-order-reversed-p ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11421 "Check if the current file should receive notes in reversed order."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11422 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11423 ((not org-reverse-note-order) nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11424 ((eq t org-reverse-note-order) t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11425 ((not (listp org-reverse-note-order)) nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11426 (t (catch 'exit
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11427 (let ((all org-reverse-note-order)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11428 entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11429 (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
11430 (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
11431 (throw 'exit (cdr entry))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11432 nil)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11433
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11434 ;;; Tables
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11435
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11436 ;; Watch out: Here we are talking about two different kind of tables.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11437 ;; 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
11438 ;; Sometimes, we talk about tables created and edited with the table.el
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11439 ;; Emacs package. We call the former org-type tables, and the latter
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11440 ;; table.el-type tables.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11441
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 (defun org-before-change-function (beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11444 "Every change indicates that a table might need an update."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11445 (setq org-table-may-need-update t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11446
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11447 (defconst org-table-line-regexp "^[ \t]*|"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11448 "Detects an org-type table line.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11449 (defconst org-table-dataline-regexp "^[ \t]*|[^-]"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11450 "Detects an org-type table line.")
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11451 (defconst org-table-auto-recalculate-regexp "^[ \t]*| *# *\\(|\\|$\\)"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11452 "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
11453 (defconst org-table-recalculate-regexp "^[ \t]*| *[#*] *\\(|\\|$\\)"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11454 "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
11455 (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
11456 "Detects a table line marked for automatic recalculation.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11457 (defconst org-table-hline-regexp "^[ \t]*|-"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11458 "Detects an org-type table hline.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11459 (defconst org-table1-hline-regexp "^[ \t]*\\+-[-+]"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11460 "Detects a table-type table hline.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11461 (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
11462 "Detects an org-type or table-type table.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11463 (defconst org-table-border-regexp "^[ \t]*[^| \t]"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11464 "Searching from within a table (any type) this finds the first line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11465 outside the table.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11466 (defconst org-table-any-border-regexp "^[ \t]*[^|+ \t]"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11467 "Searching from within a table (any type) this finds the first line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11468 outside the table.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11469
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11470 (defun org-table-create-with-table.el ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11471 "Use the table.el package to insert a new table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11472 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
11473 and table.el tables."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11474 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11475 (require 'table)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11476 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11477 ((org-at-table.el-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11478 (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
11479 (org-table-convert)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11480 ((org-at-table-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11481 (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
11482 (org-table-convert)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11483 (t (call-interactively 'table-insert))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11484
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11485 (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
11486 "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
11487 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
11488 region, create an empty table."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11489 (interactive "P")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11490 (if (org-region-active-p)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11491 (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
11492 (org-table-create arg)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11493
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11494 (defun org-table-create (&optional size)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11495 "Query for a size and insert a table skeleton.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11496 SIZE is a string Columns x Rows like for example \"3x2\"."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11497 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11498 (unless size
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11499 (setq size (read-string
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11500 (concat "Table size Columns x Rows [e.g. "
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11501 org-table-default-size "]: ")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11502 "" nil org-table-default-size)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11503
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11504 (let* ((pos (point))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11505 (indent (make-string (current-column) ?\ ))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11506 (split (org-split-string size " *x *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11507 (rows (string-to-number (nth 1 split)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11508 (columns (string-to-number (car split)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11509 (line (concat (apply 'concat indent "|" (make-list columns " |"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11510 "\n")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11511 (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
11512 (point-at-bol) (point)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11513 (beginning-of-line 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11514 (newline))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
11515 ;; (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
11516 (dotimes (i rows) (insert line))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11517 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11518 (if (> rows 1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11519 ;; Insert a hline after the first row.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11520 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11521 (end-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11522 (insert "\n|-")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11523 (goto-char pos)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11524 (org-table-align)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11525
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11526 (defun org-table-convert-region (beg0 end0 &optional nspace)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11527 "Convert region to a table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11528 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
11529 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
11530 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
11531 separate columns (default: just one space)."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11532 (interactive "rP")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11533 (let* ((beg (min beg0 end0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11534 (end (max beg0 end0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11535 (tabsep t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11536 re)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11537 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11538 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11539 (setq beg (move-marker (make-marker) (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11540 (goto-char end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11541 (if (bolp) (backward-char 1) (end-of-line 1))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11542 (setq end (move-marker (make-marker) (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11543 ;; Lets see if this is tab-separated material. If every nonempty line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11544 ;; contains a tab, we will assume that it is tab-separated material
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11545 (if nspace
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11546 (setq tabsep nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11547 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11548 (and (re-search-forward "^[^\n\t]+$" end t) (setq tabsep nil)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11549 (if nspace (setq tabsep nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11550 (if tabsep
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11551 (setq re "^\\|\t")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11552 (setq re (format "^ *\\| *\t *\\| \\{%d,\\}"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11553 (max 1 (prefix-numeric-value nspace)))))
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 (while (re-search-forward re end t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11556 (replace-match "|" t t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11557 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11558 (insert " ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11559 (org-table-align)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11560
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11561 (defun org-table-import (file arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11562 "Import FILE as a table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11563 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
11564 spreadsheet and database applications. If no tabs (at least one per line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11565 are found, lines will be split on whitespace into fields."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11566 (interactive "f\nP")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11567 (or (bolp) (newline))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11568 (let ((beg (point))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11569 (pm (point-max)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11570 (insert-file-contents file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11571 (org-table-convert-region beg (+ (point) (- (point-max) pm)) arg)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11572
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11573 (defun org-table-export ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11574 "Export table as a tab-separated file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11575 Such a file can be imported into a spreadsheet program like Excel."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11576 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11577 (let* ((beg (org-table-begin))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11578 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11579 (table (buffer-substring beg end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11580 (file (read-file-name "Export table to: "))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11581 buf)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11582 (unless (or (not (file-exists-p file))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11583 (y-or-n-p (format "Overwrite file %s? " file)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11584 (error "Abort"))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
11585 (with-current-buffer (find-file-noselect file)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11586 (setq buf (current-buffer))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11587 (erase-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11588 (fundamental-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11589 (insert table)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11590 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11591 (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
11592 (replace-match "" t t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11593 (end-of-line 1))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11594 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11595 (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
11596 (replace-match "" t t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11597 (goto-char (min (1+ (point)) (point-max))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11598 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11599 (while (re-search-forward "^-[-+]*$" nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11600 (replace-match "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11601 (if (looking-at "\n")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11602 (delete-char 1)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11603 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11604 (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
11605 (replace-match "\t" t t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11606 (save-buffer))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11607 (kill-buffer buf)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11608
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11609 (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
11610 "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
11611 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
11612 (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
11613 "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
11614 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
11615 (defvar org-table-last-alignment nil
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
11616 "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
11617 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
11618 (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
11619 "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
11620 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
11621
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11622 (defvar org-last-recalc-line nil)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11623 (defconst org-narrow-column-arrow "=>"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11624 "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
11625
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11626 (defun org-table-align ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11627 "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
11628 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11629 (let* (
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11630 ;; Limits of table
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11631 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11632 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11633 ;; Current cursor position
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11634 (linepos (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11635 (colpos (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11636 (winstart (window-start))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11637 (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
11638 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
11639 column
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11640 (indent "") cnt frac
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11641 rfmt hfmt
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11642 (spaces '(1 . 1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11643 (sp1 (car spaces))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11644 (sp2 (cdr spaces))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11645 (rfmt1 (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11646 (make-string sp2 ?\ ) "%%%s%ds" (make-string sp1 ?\ ) "|"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11647 (hfmt1 (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11648 (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
11649 emptystrings links dates narrow fmax f1 len c e)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11650 (untabify beg end)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11651 (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
11652 ;; 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
11653 (goto-char beg)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11654 (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
11655 (goto-char beg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11656 (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
11657 (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
11658 ;; 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
11659 (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
11660 ;; 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
11661 (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
11662
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11663 ;; Check if we are narrowing any columns
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11664 (goto-char beg)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11665 (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
11666 (re-search-forward "<[0-9]+>" end t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11667 ;; Get the rows
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11668 (setq lines (org-split-string
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11669 (buffer-substring beg end) "\n"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11670 ;; Store the indentation of the first line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11671 (if (string-match "^ *" (car lines))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11672 (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
11673 ;; 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
11674 ;; 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
11675 (setq lines (mapcar (lambda (l)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11676 (if (string-match "^ *|-" l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11677 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11678 (if (string-match "[ \t]+$" l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11679 (substring l 0 (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11680 l)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11681 lines))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11682 ;; Get the data fields by splitting the lines.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11683 (setq fields (mapcar
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11684 (lambda (l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11685 (org-split-string l " *| *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11686 (delq nil (copy-sequence lines))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11687 ;; How many fields in the longest line?
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11688 (condition-case nil
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11689 (setq maxfields (apply 'max (mapcar 'length fields)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11690 (error
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11691 (kill-region beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11692 (org-table-create org-table-default-size)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11693 (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
11694 ;; 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
11695 (setq emptystrings (make-list maxfields ""))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11696 ;; Check for special formatting.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11697 (setq i -1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11698 (while (< (setq i (1+ i)) maxfields) ;; Loop over all columns
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11699 (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
11700 ;; 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
11701 (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
11702 (setq c column fmax nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11703 (while c
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11704 (setq e (pop c))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11705 (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
11706 (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
11707 ;; 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
11708 (when fmax
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11709 (loop for xx in column do
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11710 (when (and (stringp xx)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11711 (> (org-string-width xx) fmax))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11712 (org-add-props xx nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11713 'help-echo
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
11714 (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
11715 (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
11716 (unless (> f1 1)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11717 (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
11718 (match-string 0 xx)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11719 (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
11720 (add-text-properties (- f1 2) f1
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11721 (list 'display org-narrow-column-arrow)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11722 xx)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11723 ;; Get the maximum width for each column
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11724 (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
11725 ;; 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
11726 (setq cnt 0 frac 0.0)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11727 (loop for x in column do
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11728 (if (equal x "")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11729 nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11730 (setq frac ( / (+ (* frac cnt)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11731 (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
11732 (setq cnt (1+ cnt))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11733 (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
11734 (setq lengths (nreverse lengths) typenums (nreverse typenums))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11735
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11736 ;; 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
11737 (setq org-table-last-alignment typenums
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11738 org-table-last-column-widths lengths)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11739
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11740 ;; 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
11741 ;; 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
11742 (when links
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11743 (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
11744 (setq len (nth i lengths))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11745 (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
11746 (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
11747 (if (and (stringp (car c))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11748 (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
11749 (< (org-string-width (car c)) len))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11750 (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
11751
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11752 ;; Compute the formats needed for output of the table
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11753 (setq rfmt (concat indent "|") hfmt (concat indent "|"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11754 (while (setq l (pop lengths))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11755 (setq ty (if (pop typenums) "" "-")) ; number types flushright
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11756 (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
11757 hfmt (concat hfmt (format hfmt1 (make-string l ?-)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11758 (setq rfmt (concat rfmt "\n")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11759 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
11760
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
11761 (setq new (mapconcat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11762 (lambda (l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11763 (if l (apply 'format rfmt
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11764 (append (pop fields) emptystrings))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11765 hfmt))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11766 lines ""))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11767 ;; Replace the old one
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11768 (delete-region beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11769 (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
11770 (move-marker org-table-aligned-begin-marker (point))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11771 (insert new)
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11772 (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
11773 (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
11774 (goto-char org-table-aligned-begin-marker)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11775 (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
11776 ;; 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
11777 (goto-line winstartline)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11778 (setq winstart (point-at-bol))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11779 (goto-line linepos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11780 (set-window-start (selected-window) winstart 'noforce)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11781 (org-table-goto-column colpos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11782 (setq org-table-may-need-update nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11783 ))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11784
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11785 (defun org-string-width (s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11786 "Compute width of string, ignoring invisible characters.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11787 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
11788 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
11789 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
11790 (let (b l)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11791 (when (or (eq t buffer-invisibility-spec)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11792 (assq 'org-link buffer-invisibility-spec))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11793 (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
11794 'invisible 'org-link s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11795 (setq s (concat (substring s 0 b)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11796 (substring s (or (next-single-property-change
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11797 b 'invisible s) (length s)))))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11798 (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
11799 (setq s (concat (substring s 0 b)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11800 (substring s (or (next-single-property-change
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11801 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
11802 (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
11803 (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
11804 (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
11805 l))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11806
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11807 (defun org-table-begin (&optional table-type)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11808 "Find the beginning of the table and return its position.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11809 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
11810 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11811 (if (not (re-search-backward
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11812 (if table-type org-table-any-border-regexp
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11813 org-table-border-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11814 nil t))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11815 (progn (goto-char (point-min)) (point))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11816 (goto-char (match-beginning 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11817 (beginning-of-line 2)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11818 (point))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11819
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11820 (defun org-table-end (&optional table-type)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11821 "Find the end of the table and return its position.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11822 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
11823 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11824 (if (not (re-search-forward
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11825 (if table-type org-table-any-border-regexp
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11826 org-table-border-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11827 nil t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11828 (goto-char (point-max))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11829 (goto-char (match-beginning 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11830 (point-marker)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11831
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11832 (defun org-table-justify-field-maybe (&optional new)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11833 "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
11834 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
11835 (cond
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11836 ((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
11837 ((org-at-table-hline-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11838 ((and (not new)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11839 (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
11840 (current-buffer)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11841 (< (point) org-table-aligned-begin-marker)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11842 (>= (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
11843 ;; 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
11844 (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
11845 (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
11846 (let* ((pos (point)) s
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11847 (col (org-table-current-column))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11848 (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
11849 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
11850 (when (> col 0)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11851 (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
11852 (if (looking-at " *\\([^|\n]*?\\) *\\(|\\|$\\)")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11853 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11854 (setq s (match-string 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11855 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
11856 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
11857 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
11858 (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
11859 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
11860 n (format f s))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11861 (if new
70161
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
11862 (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
11863 (setq n (format f new))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11864 (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
11865 (or (equal n o)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11866 (let (org-table-may-need-update)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11867 (replace-match n))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11868 (setq org-table-may-need-update t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11869 (goto-char pos))))))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11870
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11871 (defun org-table-next-field ()
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11872 "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
11873 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
11874 (interactive)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11875 (org-table-maybe-eval-formula)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11876 (org-table-maybe-recalculate-line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11877 (if (and org-table-automatic-realign
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11878 org-table-may-need-update)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11879 (org-table-align))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11880 (let ((end (org-table-end)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11881 (if (org-at-table-hline-p)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11882 (end-of-line 1))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11883 (condition-case nil
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11884 (progn
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11885 (re-search-forward "|" end)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11886 (if (looking-at "[ \t]*$")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11887 (re-search-forward "|" end))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11888 (if (and (looking-at "-")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11889 org-table-tab-jumps-over-hlines
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11890 (re-search-forward "^[ \t]*|\\([^-]\\)" end t))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11891 (goto-char (match-beginning 1)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11892 (if (looking-at "-")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11893 (progn
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11894 (beginning-of-line 0)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11895 (org-table-insert-row 'below))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11896 (if (looking-at " ") (forward-char 1))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11897 (error
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11898 (org-table-insert-row 'below)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11899
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11900 (defun org-table-previous-field ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11901 "Go to the previous field in the table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11902 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
11903 (interactive)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11904 (org-table-justify-field-maybe)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11905 (org-table-maybe-recalculate-line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11906 (if (and org-table-automatic-realign
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11907 org-table-may-need-update)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11908 (org-table-align))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11909 (if (org-at-table-hline-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11910 (end-of-line 1))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11911 (re-search-backward "|" (org-table-begin))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11912 (re-search-backward "|" (org-table-begin))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11913 (while (looking-at "|\\(-\\|[ \t]*$\\)")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11914 (re-search-backward "|" (org-table-begin)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11915 (if (looking-at "| ?")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11916 (goto-char (match-end 0))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11917
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11918 (defun org-table-next-row ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11919 "Go to the next row (same column) in the current table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11920 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
11921 (interactive)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11922 (org-table-maybe-eval-formula)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11923 (org-table-maybe-recalculate-line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11924 (if (or (looking-at "[ \t]*$")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11925 (save-excursion (skip-chars-backward " \t") (bolp)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11926 (newline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11927 (if (and org-table-automatic-realign
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11928 org-table-may-need-update)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11929 (org-table-align))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11930 (let ((col (org-table-current-column)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11931 (beginning-of-line 2)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11932 (if (or (not (org-at-table-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11933 (org-at-table-hline-p))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11934 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11935 (beginning-of-line 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11936 (org-table-insert-row 'below)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11937 (org-table-goto-column col)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11938 (skip-chars-backward "^|\n\r")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11939 (if (looking-at " ") (forward-char 1)))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11940
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11941 (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
11942 "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
11943 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
11944 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
11945 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
11946 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
11947 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
11948 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
11949 integer, it will be incremented while copying."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11950 (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
11951 (let* ((colpos (org-table-current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11952 (field (org-table-get-field))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11953 (non-empty (string-match "[^ \t]" field))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11954 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11955 txt)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11956 (org-table-check-inside-data-field)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11957 (if non-empty
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11958 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11959 (setq txt (org-trim field))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11960 (org-table-next-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11961 (org-table-blank-field))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11962 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11963 (setq txt
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11964 (catch 'exit
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11965 (while (progn (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11966 (re-search-backward org-table-dataline-regexp
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11967 beg t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11968 (org-table-goto-column colpos t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11969 (if (and (looking-at
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11970 "|[ \t]*\\([^| \t][^|]*?\\)[ \t]*|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11971 (= (setq n (1- n)) 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11972 (throw 'exit (match-string 1))))))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11973 (if txt
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11974 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11975 (if (and org-table-copy-increment
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11976 (string-match "^[0-9]+$" txt))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
11977 (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
11978 (insert txt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11979 (org-table-maybe-recalculate-line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11980 (org-table-align))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11981 (error "No non-empty field found"))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11982
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11983 (defun org-table-check-inside-data-field ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11984 "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
11985 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
11986 This actually throws an error, so it aborts the current command."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11987 (if (or (not (org-at-table-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11988 (= (org-table-current-column) 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11989 (org-at-table-hline-p)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11990 (looking-at "[ \t]*$"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11991 (error "Not in table data field")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11992
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11993 (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
11994 "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
11995
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11996 (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
11997 "Blank the current table field or active region."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11998 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11999 (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
12000 (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
12001 (let (org-table-clip)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12002 (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
12003 (skip-chars-backward "^|")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12004 (backward-char 1)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12005 (if (looking-at "|[^|\n]+")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12006 (let* ((pos (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12007 (match (match-string 0))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12008 (len (org-string-width match)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12009 (replace-match (concat "|" (make-string (1- len) ?\ )))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12010 (goto-char (+ 2 pos))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12011 (substring match 1)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12012
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12013 (defun org-table-get-field (&optional n replace)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12014 "Return the value of the field in column N of current row.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12015 N defaults to current field.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12016 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
12017 is always the old value."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12018 (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
12019 (skip-chars-backward "^|\n")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12020 (backward-char 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12021 (if (looking-at "|[^|\r\n]*")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12022 (let* ((pos (match-beginning 0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12023 (val (buffer-substring (1+ pos) (match-end 0))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12024 (if replace
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12025 (replace-match (concat "|" replace)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12026 (goto-char (min (point-at-eol) (+ 2 pos)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12027 val)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12028 (forward-char 1) ""))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12029
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12030 (defun org-table-current-column ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12031 "Find out which column we are in.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12032 When called interactively, column is also displayed in echo area."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12033 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12034 (if (interactive-p) (org-table-check-inside-data-field))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12035 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12036 (let ((cnt 0) (pos (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12037 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12038 (while (search-forward "|" pos t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12039 (setq cnt (1+ cnt)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12040 (if (interactive-p) (message "This is table column %d" cnt))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12041 cnt)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12042
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12043 (defun org-table-goto-column (n &optional on-delim force)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12044 "Move the cursor to the Nth column in the current table line.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12045 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
12046 of the field.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12047 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
12048 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
12049 (interactive "p")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12050 (let ((pos (point-at-eol)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12051 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12052 (when (> n 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12053 (while (and (> (setq n (1- n)) -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12054 (or (search-forward "|" pos t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12055 (and force
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12056 (progn (end-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12057 (skip-chars-backward "^|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12058 (insert " | "))))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12059 ; (backward-char 2) t)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12060 (when (and force (not (looking-at ".*|")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12061 (save-excursion (end-of-line 1) (insert " | ")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12062 (if on-delim
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12063 (backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12064 (if (looking-at " ") (forward-char 1))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12065
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12066 (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
12067 "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
12068 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
12069 (if org-enable-table-editor
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12070 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12071 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12072 (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
12073 org-table-line-regexp)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12074 nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12075
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12076 (defun org-at-table.el-p ()
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12077 "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
12078 (and (org-at-table-p 'any)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12079 (save-excursion
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12080 (goto-char (org-table-begin 'any))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12081 (looking-at org-table1-hline-regexp))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12082
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12083 (defun org-table-recognize-table.el ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12084 "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
12085 (if org-table-tab-recognizes-table.el
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12086 (if (org-at-table.el-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12087 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12088 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12089 (if (looking-at org-table-dataline-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12090 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12091 (if (looking-at org-table1-hline-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12092 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12093 (beginning-of-line 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12094 (if (looking-at org-table-any-border-regexp)
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 (re-search-forward "|" (org-table-end t) t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12097 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12098 (require 'table)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12099 (if (table--at-cell-p (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12100 t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12101 (message "recognizing table.el table...")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12102 (table-recognize-table)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12103 (message "recognizing table.el table...done")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12104 (error "This should not happen..."))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12105 t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12106 nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12107 nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12108
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12109 (defun org-at-table-hline-p ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12110 "Return t if the cursor is inside a hline in a table."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12111 (if org-enable-table-editor
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12112 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12113 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12114 (looking-at org-table-hline-regexp))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12115 nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12116
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12117 (defun org-table-insert-column ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12118 "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
12119 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12120 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12121 (error "Not at a table"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12122 (org-table-find-dataline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12123 (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
12124 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12125 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12126 ;; Current cursor position
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
12127 (linepos (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12128 (colpos col))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12129 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12130 (while (< (point) end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12131 (if (org-at-table-hline-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12132 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12133 (org-table-goto-column col t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12134 (insert "| "))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12135 (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12136 (move-marker end nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12137 (goto-line linepos)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12138 (org-table-goto-column colpos)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12139 (org-table-align)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12140 (org-table-modify-formulas 'insert col)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12141
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12142 (defun org-table-find-dataline ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12143 "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
12144 (if (and (org-at-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12145 (not (org-at-table-hline-p)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12146 t
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12147 (let ((col (current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12148 (end (org-table-end)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12149 (move-to-column col)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12150 (while (and (< (point) end)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12151 (or (not (= (current-column) col))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12152 (org-at-table-hline-p)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12153 (beginning-of-line 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12154 (move-to-column col))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12155 (if (and (org-at-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12156 (not (org-at-table-hline-p)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12157 t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12158 (error
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12159 "Please position cursor in a data line for column operations")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12160
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12161 (defun org-table-delete-column ()
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
12162 "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
12163 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12164 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12165 (error "Not at a table"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12166 (org-table-find-dataline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12167 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12168 (let* ((col (org-table-current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12169 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12170 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12171 ;; Current cursor position
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
12172 (linepos (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12173 (colpos col))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12174 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12175 (while (< (point) end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12176 (if (org-at-table-hline-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12177 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12178 (org-table-goto-column col t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12179 (and (looking-at "|[^|\n]+|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12180 (replace-match "|")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12181 (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12182 (move-marker end nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12183 (goto-line linepos)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12184 (org-table-goto-column colpos)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12185 (org-table-align)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12186 (org-table-modify-formulas 'remove col)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12187
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12188 (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
12189 "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
12190 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12191 (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
12192 (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
12193 "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
12194 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12195 (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
12196
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12197 (defun org-table-move-column (&optional left)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12198 "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
12199 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12200 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12201 (error "Not at a table"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12202 (org-table-find-dataline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12203 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12204 (let* ((col (org-table-current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12205 (col1 (if left (1- col) col))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12206 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12207 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12208 ;; Current cursor position
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
12209 (linepos (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12210 (colpos (if left (1- col) (1+ col))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12211 (if (and left (= col 1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12212 (error "Cannot move column further left"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12213 (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
12214 (error "Cannot move column further right"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12215 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12216 (while (< (point) end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12217 (if (org-at-table-hline-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12218 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12219 (org-table-goto-column col1 t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12220 (and (looking-at "|\\([^|\n]+\\)|\\([^|\n]+\\)|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12221 (replace-match "|\\2|\\1|")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12222 (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12223 (move-marker end nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12224 (goto-line linepos)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12225 (org-table-goto-column colpos)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12226 (org-table-align)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12227 (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
12228
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12229 (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
12230 "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
12231 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12232 (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
12233 (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
12234 "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
12235 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12236 (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
12237
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12238 (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
12239 "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
12240 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12241 (let ((col (current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12242 (pos (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12243 (tonew (if up 0 2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12244 txt)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12245 (beginning-of-line tonew)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12246 (if (not (org-at-table-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12247 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12248 (goto-char pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12249 (error "Cannot move row further")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12250 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12251 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12252 (setq pos (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12253 (setq txt (buffer-substring (point) (1+ (point-at-eol))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12254 (delete-region (point) (1+ (point-at-eol)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12255 (beginning-of-line tonew)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12256 (insert txt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12257 (beginning-of-line 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12258 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12259
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12260 (defun org-table-insert-row (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12261 "Insert a new row above the current line into the table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12262 With prefix ARG, insert below the current line."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12263 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12264 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12265 (error "Not at a table"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12266 (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
12267 (new (org-table-clean-line line)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12268 ;; Fix the first field if necessary
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12269 (if (string-match "^[ \t]*| *[#$] *|" line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12270 (setq new (replace-match (match-string 0 line) t t new)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12271 (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
12272 (let (org-table-may-need-update) (insert-before-markers new "\n"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12273 (beginning-of-line 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12274 (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
12275 (and org-table-may-need-update (org-table-align))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12276
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12277 (defun org-table-insert-hline (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12278 "Insert a horizontal-line below the current line into the table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12279 With prefix ARG, insert above the current line."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12280 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12281 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12282 (error "Not at a table"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12283 (let ((line (org-table-clean-line
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12284 (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
12285 (col (current-column)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12286 (while (string-match "|\\( +\\)|" line)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
12287 (setq line (replace-match
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12288 (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
12289 ?-) "|") t t line)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12290 (and (string-match "\\+" line) (setq line (replace-match "|" t t line)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12291 (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
12292 (insert line "\n")
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
12293 (beginning-of-line (if arg 1 -1))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12294 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12295
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12296 (defun org-table-clean-line (s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12297 "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
12298 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
12299 (if (string-match "^[ \t]*|-" s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12300 ;; 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
12301 (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
12302 (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
12303 (setq s (replace-match
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12304 (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
12305 ?\ ) "|")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12306 t t s)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12307 s))
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
12308
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12309 (defun org-table-kill-row ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12310 "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
12311 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12312 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12313 (error "Not at a table"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12314 (let ((col (current-column)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12315 (kill-region (point-at-bol) (min (1+ (point-at-eol)) (point-max)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12316 (if (not (org-at-table-p)) (beginning-of-line 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12317 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12318
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12319 (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
12320 "Sort table lines in region.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12321 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
12322 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
12323 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
12324 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
12325 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
12326 \(n for numerical, a for alphanumeric)."
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12327 (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
12328 (setq numericp (string-match "[nN]" numericp))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12329 (org-table-align) ;; Just to be safe
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12330 (let* (bcol ecol cmp column lns)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12331 (goto-char beg)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12332 (org-table-check-inside-data-field)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12333 (setq column (org-table-current-column)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12334 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
12335 (goto-char end)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12336 (org-table-check-inside-data-field)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12337 (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
12338 (untabify beg end)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12339 (goto-char beg)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12340 (org-table-goto-column column)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12341 (skip-chars-backward "^|")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12342 (setq bcol (current-column))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12343 (org-table-goto-column (1+ column))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12344 (skip-chars-backward "^|")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12345 (setq ecol (1- (current-column)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12346 (setq cmp (if numericp
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12347 (lambda (a b) (< (car a) (car b)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12348 (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
12349 (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
12350 (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
12351 (if numericp
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12352 (setq lns (mapcar (lambda(x)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12353 (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
12354 lns)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12355 (delete-region beg end)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12356 (move-marker beg nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12357 (move-marker end nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12358 (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
12359 (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
12360 (length lns)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12361 (if numericp "numerically" "alphabetically") column)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12362
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12363 (defun org-table-cut-region (beg end)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12364 "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
12365 (interactive "r")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12366 (org-table-copy-region beg end 'cut))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12367
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12368 (defun org-table-copy-region (beg end &optional cut)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12369 "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
12370 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
12371 with `org-table-paste-rectangle'."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12372 (interactive "rP")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12373 (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
12374 region cols
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12375 (rpl (if cut " " nil)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12376 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12377 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12378 (setq l01 (count-lines (point-min) (point))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12379 c01 (org-table-current-column))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12380 (goto-char end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12381 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12382 (setq l02 (count-lines (point-min) (point))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12383 c02 (org-table-current-column))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12384 (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
12385 c1 (min c01 c02) c2 (max c01 c02))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12386 (catch 'exit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12387 (while t
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12388 (catch 'nextline
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12389 (if (> l1 l2) (throw 'exit t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12390 (goto-line l1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12391 (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
12392 (setq cols nil ic1 c1 ic2 c2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12393 (while (< ic1 (1+ ic2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12394 (push (org-table-get-field ic1 rpl) cols)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12395 (setq ic1 (1+ ic1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12396 (push (nreverse cols) region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12397 (setq l1 (1+ l1)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12398 (setq org-table-clip (nreverse region))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12399 (if cut (org-table-align))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12400 org-table-clip))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
12401
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12402 (defun org-table-paste-rectangle ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12403 "Paste a rectangular region into a table.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12404 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
12405 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
12406 the table is enlarged as needed. The process ignores horizontal separator
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12407 lines."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12408 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12409 (unless (and org-table-clip (listp org-table-clip))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12410 (error "First cut/copy a region to paste!"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12411 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12412 (let* ((clip org-table-clip)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12413 (line (count-lines (point-min) (point)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12414 (col (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12415 (org-enable-table-editor t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12416 (org-table-automatic-realign nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12417 c cols field)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12418 (while (setq cols (pop clip))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12419 (while (org-at-table-hline-p) (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12420 (if (not (org-at-table-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12421 (progn (end-of-line 0) (org-table-next-field)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12422 (setq c col)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12423 (while (setq field (pop cols))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12424 (org-table-goto-column c nil 'force)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12425 (org-table-get-field nil field)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12426 (setq c (1+ c)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12427 (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12428 (goto-line line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12429 (org-table-goto-column col)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12430 (org-table-align)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12431
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12432 (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
12433 "Convert from `org-mode' table to table.el and back.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12434 Obviously, this only works within limits. When an Org-mode table is
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12435 converted to table.el, all horizontal separator lines get lost, because
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12436 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
12437 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
12438 do row or column spanning. Multiline cells will become multiple cells.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12439 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
12440 blindly applies a recipe that works for simple tables."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12441 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12442 (require 'table)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12443 (if (org-at-table.el-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12444 ;; convert to Org-mode table
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12445 (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
12446 (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
12447 (table-unrecognize-region beg end)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12448 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12449 (while (re-search-forward "^\\([ \t]*\\)\\+-.*\n" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12450 (replace-match ""))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12451 (goto-char beg))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12452 (if (org-at-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12453 ;; convert to table.el table
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12454 (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
12455 (end (move-marker (make-marker) (org-table-end))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12456 ;; first, get rid of all horizontal lines
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12457 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12458 (while (re-search-forward "^\\([ \t]*\\)|-.*\n" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12459 (replace-match ""))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12460 ;; insert a hline before first
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12461 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12462 (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
12463 (beginning-of-line -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12464 ;; 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
12465 (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
12466 (org-table-insert-hline))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12467 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12468 (setq end (move-marker end (org-table-end)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12469 ;; replace "+" at beginning and ending of hlines
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12470 (while (re-search-forward "^\\([ \t]*\\)|-" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12471 (replace-match "\\1+-"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12472 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12473 (while (re-search-forward "-|[ \t]*$" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12474 (replace-match "-+"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12475 (goto-char beg)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12476
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12477 (defun org-table-wrap-region (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12478 "Wrap several fields in a column like a paragraph.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12479 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
12480 lines, in order to keep the table compact.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12481
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12482 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
12483 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
12484 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
12485 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
12486 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
12487 lines, the remaining lines remain empty. A negative prefix argument reduces
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12488 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
12489 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
12490 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
12491 the table first.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12492
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12493 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
12494 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
12495 line down.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12496
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12497 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
12498 blank, and the content is appended to the field above."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12499 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12500 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12501 (if (org-region-active-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12502 ;; There is a region: fill as a paragraph
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12503 (let ((beg (region-beginning))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12504 nlines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12505 (org-table-cut-region (region-beginning) (region-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12506 (if (> (length (car org-table-clip)) 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12507 (error "Region must be limited to single column"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12508 (setq nlines (if arg
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12509 (if (< arg 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12510 (+ (length org-table-clip) arg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12511 arg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12512 (length org-table-clip)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12513 (setq org-table-clip
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12514 (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
12515 nil nlines)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12516 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12517 (org-table-paste-rectangle))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12518 ;; No region, split the current field at point
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12519 (if arg
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12520 ;; combine with field above
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12521 (let ((s (org-table-blank-field))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12522 (col (org-table-current-column)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12523 (beginning-of-line 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12524 (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
12525 (org-table-goto-column col)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12526 (skip-chars-forward "^|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12527 (skip-chars-backward " ")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12528 (insert " " (org-trim s))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12529 (org-table-align))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12530 ;; split field
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12531 (when (looking-at "\\([^|]+\\)+|")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12532 (let ((s (match-string 1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12533 (replace-match " |")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12534 (goto-char (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12535 (org-table-next-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12536 (insert (org-trim s) " ")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12537 (org-table-align))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12538
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12539 (defvar org-field-marker nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12540
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12541 (defun org-table-edit-field (arg)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12542 "Edit table field in a different window.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12543 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
12544 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
12545 it can be edited in place."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12546 (interactive "P")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12547 (if arg
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12548 (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
12549 (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
12550 (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
12551 display t intangible t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12552 (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
12553 (font-lock-fontify-block)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12554 (let ((pos (move-marker (make-marker) (point)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12555 (field (org-table-get-field))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12556 (cw (current-window-configuration))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12557 p)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12558 (switch-to-buffer-other-window "*Org tmp*")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12559 (erase-buffer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12560 (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
12561 (org-mode)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12562 (goto-char (setq p (point-max)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12563 (insert (org-trim field))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12564 (remove-text-properties p (point-max)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12565 '(invisible t org-cwidth t display t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12566 intangible t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12567 (goto-char p)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
12568 (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
12569 '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
12570 (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
12571 (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
12572 (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
12573
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12574 (defun org-table-finish-edit-field ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12575 "Finish editing a table data field.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12576 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
12577 the table and kill the editing buffer."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12578 (let ((pos org-field-marker)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12579 (cw org-window-configuration)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12580 (cb (current-buffer))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12581 text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12582 (goto-char (point-min))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12583 (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
12584 (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
12585 (replace-match " "))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12586 (setq text (org-trim (buffer-string)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12587 (set-window-configuration cw)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12588 (kill-buffer cb)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12589 (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
12590 (goto-char pos)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12591 (move-marker pos nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12592 (org-table-check-inside-data-field)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12593 (org-table-get-field nil text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12594 (org-table-align)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12595 (message "New field value inserted")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12596
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12597 (defun org-trim (s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12598 "Remove whitespace at beginning and end of string."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12599 (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
12600 (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
12601 s)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12602
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12603 (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
12604 "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
12605 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
12606 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
12607 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
12608 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
12609 many lines, whatever width that takes.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12610 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
12611 (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
12612 (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
12613 w ll)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12614 (cond (width
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12615 (org-do-wrap words (max maxword width)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12616 (lines
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12617 (setq w maxword)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12618 (setq ll (org-do-wrap words maxword))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12619 (if (<= (length ll) lines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12620 ll
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12621 (setq ll words)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12622 (while (> (length ll) lines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12623 (setq w (1+ w))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12624 (setq ll (org-do-wrap words w)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12625 ll))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12626 (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
12627
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12628
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12629 (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
12630 "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
12631 (let (lines line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12632 (while words
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12633 (setq line (pop words))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12634 (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
12635 (setq line (concat line " " (pop words))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12636 (setq lines (push line lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12637 (nreverse lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12638
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12639 (defun org-split-string (string &optional separators)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12640 "Splits STRING into substrings at SEPARATORS.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12641 No empty strings are returned if there are matches at the beginning
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12642 and end of string."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12643 (let ((rexp (or separators "[ \f\t\n\r\v]+"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12644 (start 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12645 notfirst
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12646 (list nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12647 (while (and (string-match rexp string
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12648 (if (and notfirst
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12649 (= start (match-beginning 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12650 (< start (length string)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12651 (1+ start) start))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12652 (< (match-beginning 0) (length string)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12653 (setq notfirst t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12654 (or (eq (match-beginning 0) 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12655 (and (eq (match-beginning 0) (match-end 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12656 (eq (match-beginning 0) start))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12657 (setq list
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12658 (cons (substring string start (match-beginning 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12659 list)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12660 (setq start (match-end 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12661 (or (eq start (length string))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12662 (setq list
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12663 (cons (substring string start)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12664 list)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12665 (nreverse list)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12666
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12667 (defun org-table-map-tables (function)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12668 "Apply FUNCTION to the start of all tables in the buffer."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12669 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12670 (save-restriction
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12671 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12672 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12673 (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
12674 (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
12675 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12676 (if (looking-at org-table-line-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12677 (save-excursion (funcall function)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12678 (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
12679 (message "Mapping tables: done"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12680
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12681 (defun org-table-sum (&optional beg end nlast)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12682 "Sum numbers in region of current table column.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12683 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
12684 as kill to be inserted with \\[yank].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12685
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12686 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
12687 numbers in that rectangle will be summed. If there is no active
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12688 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
12689 column.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12690
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12691 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
12692 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
12693 numbers are added as such.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12694
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12695 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
12696 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12697 (save-excursion
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12698 (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
12699 (cond
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12700 ((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
12701 ((org-region-active-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12702 (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
12703 (t
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12704 (setq col (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12705 (goto-char (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12706 (unless (re-search-forward "^[ \t]*|[^-]" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12707 (error "No table data"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12708 (org-table-goto-column col)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12709 ;not needed? (skip-chars-backward "^|")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12710 (setq beg (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12711 (goto-char (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12712 (unless (re-search-backward "^[ \t]*|[^-]" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12713 (error "No table data"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12714 (org-table-goto-column col)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12715 ;not needed? (skip-chars-forward "^|")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12716 (setq end (point))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12717 (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
12718 (items1 (cond ((not nlast) items)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12719 ((>= nlast (length items)) items)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12720 (t (setq items (reverse items))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12721 (setcdr (nthcdr (1- nlast) items) nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12722 (nreverse items))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12723 (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
12724 items1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12725 (res (apply '+ numbers))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12726 (sres (if (= timecnt 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12727 (format "%g" res)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12728 (setq diff (* 3600 res)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12729 h (floor (/ diff 3600)) diff (mod diff 3600)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12730 m (floor (/ diff 60)) diff (mod diff 60)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12731 s diff)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12732 (format "%d:%02d:%02d" h m s))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12733 (kill-new sres)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12734 (if (interactive-p)
65705
7d20cbe1d616 (org-table-sum): Fix format string.
Juanma Barranquero <lekktu@gmail.com>
parents: 65654
diff changeset
12735 (message "%s"
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
12736 (substitute-command-keys
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
12737 (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
12738 (length numbers) sres))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12739 sres))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12740
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12741 (defun org-table-get-number-for-summing (s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12742 (let (n)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12743 (if (string-match "^ *|? *" s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12744 (setq s (replace-match "" nil nil s)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12745 (if (string-match " *|? *$" s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12746 (setq s (replace-match "" nil nil s)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12747 (setq n (string-to-number s))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12748 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12749 ((and (string-match "0" s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12750 (string-match "\\`[-+ \t0.edED]+\\'" s)) 0)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12751 ((string-match "\\`[ \t]+\\'" s) nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12752 ((string-match "\\`\\([0-9]+\\):\\([0-9]+\\)\\(:\\([0-9]+\\)\\)?\\'" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12753 (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
12754 (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
12755 (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
12756 (if (boundp 'timecnt) (setq timecnt (1+ timecnt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12757 (* 1.0 (+ h (/ m 60.0) (/ s 3600.0)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12758 ((equal n 0) nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12759 (t n))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12760
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12761 (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
12762 "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
12763 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
12764 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
12765 (save-excursion
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12766 (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
12767 (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
12768 (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
12769 (cond
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12770 ((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
12771 (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
12772 (if (match-beginning 3)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12773 (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
12774 (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
12775 (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
12776 (setq nn n)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12777 (while (and (> nn 0)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12778 (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
12779 (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
12780 (setq nn (1- nn)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12781 (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
12782 (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
12783 (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
12784 (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
12785 (setq beg (point)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12786 (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
12787 (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
12788 (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
12789 (setq end (point)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12790 (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
12791 (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
12792 (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
12793 l ",") "]"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12794 ((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
12795 (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
12796 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
12797 (beginning-of-line 1)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12798 (save-excursion
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12799 (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
12800 (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
12801 (setq beg (point))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12802 (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
12803 (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
12804 (setq end (point)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12805 (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
12806 (concat "[" (mapconcat
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12807 (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
12808 (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
12809 l ",") "]"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12810 ((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
12811 (beginning-of-line 1)
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
12812 (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
12813 (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
12814 (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
12815 (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
12816
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12817 (defvar org-table-formula-history nil)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12818
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12819 (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
12820 "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
12821 (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
12822 "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
12823 (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
12824 "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
12825 (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
12826 "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
12827
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12828 (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
12829 "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
12830 (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
12831 (org-table-current-column))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12832 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
12833 (scol (if named
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12834 (if name name
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12835 (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
12836 (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
12837 (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
12838 (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
12839 (error "Abort")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12840 (org-table-may-need-update nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12841 (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
12842 (stored (cdr (assoc scol stored-list)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12843 (eq (cond
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
12844 ((and stored equation (string-match "^ *=? *$" equation))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12845 stored)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12846 ((stringp equation)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12847 equation)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12848 (t (read-string
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12849 (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
12850 (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
12851 ;stored
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12852 ))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12853 mustsave)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12854 (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
12855 ;; remove formula
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12856 (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
12857 (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
12858 (error "Formula removed"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12859 (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
12860 (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
12861 (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
12862 ;; 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
12863 (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
12864 mustsave t))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12865 (if stored
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12866 (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
12867 (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
12868 (if (or mustsave (not (equal stored eq)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12869 (org-table-store-formulas stored-list))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12870 eq))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12871
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12872 (defun org-table-store-formulas (alist)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12873 "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
12874 (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
12875 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12876 (goto-char (org-table-end))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12877 (if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:.*\n?")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12878 (delete-region (point) (match-end 0)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12879 (insert "#+TBLFM: "
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12880 (mapconcat (lambda (x)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12881 (concat "$" (car x) "=" (cdr x)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12882 alist "::")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12883 "\n")))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12884
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12885 (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
12886 "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
12887 (interactive)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12888 (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
12889 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12890 (goto-char (org-table-end))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12891 (when (looking-at "\\([ \t]*\n\\)*#\\+TBLFM: *\\(.*\\)")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12892 (setq strings (org-split-string (match-string 2) " *:: *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12893 (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
12894 (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
12895 (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
12896 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
12897 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
12898 (if (member scol seen)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12899 (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
12900 (push scol seen))))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12901 (nreverse eq-alist)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12902
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12903 (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
12904 "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
12905 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
12906 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
12907 (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
12908 (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
12909 (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
12910 "|")))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12911 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
12912 (cond
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12913 ((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
12914 ((eq action 'remove)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12915 (setq col (car columns)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12916 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
12917 (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
12918 (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
12919 (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
12920 (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
12921 (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
12922 (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
12923 (int-to-string (1- i))))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12924 ((eq action 'insert)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12925 (setq col (car columns))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12926 (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
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 'swap)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12932 (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
12933 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
12934 ;; 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
12935 (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
12936 (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
12937 (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
12938 (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
12939 (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
12940 (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
12941 (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
12942 (if list (org-table-store-formulas list))))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12943
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12944 (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
12945 (let (elt re s)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12946 (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
12947 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
12948 re (concat (regexp-quote s1) "\\>"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12949 (while (setq elt (pop list))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12950 (setq s (cdr elt))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12951 (while (string-match re s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12952 (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
12953 (setcdr elt s))))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12954
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12955 (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
12956 "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
12957 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12958 (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
12959 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
12960 (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
12961 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
12962 org-table-named-field-locations nil)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12963 (goto-char beg)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12964 (when (re-search-forward "^[ \t]*| *! *\\(|.*\\)" end t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12965 (setq names (org-split-string (match-string 1) " *| *")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12966 cnt 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12967 (while (setq name (pop names))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12968 (setq cnt (1+ cnt))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12969 (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
12970 (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
12971 (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
12972 (setq org-table-column-name-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12973 (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
12974 (goto-char beg)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12975 (while (re-search-forward "^[ \t]*| *\\$ *\\(|.*\\)" end t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12976 (setq fields (org-split-string (match-string 1) " *| *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12977 (while (setq field (pop fields))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12978 (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
12979 (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
12980 org-table-local-parameters))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12981 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12982 (while (re-search-forward "^[ \t]*| *\\([_^]\\) *\\(|.*\\)" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12983 (setq c (match-string 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12984 fields (org-split-string (match-string 2) " *| *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12985 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12986 (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
12987 (setq line (org-current-line) col 1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12988 (and (looking-at "^[ \t]*|[^|]*\\(|.*\\)")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12989 (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
12990 (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
12991 (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
12992 (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
12993 (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
12994 (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
12995 (push (list field line col) org-table-named-field-locations)))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12996
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12997 (defun org-this-word ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12998 ;; Get the current word
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12999 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13000 (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
13001 (end (progn (skip-chars-forward "^ \t\n") (point))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13002 (buffer-substring-no-properties beg end))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13003
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13004 (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
13005 "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
13006 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
13007 ;; 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
13008 ;; 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
13009 (when org-table-formula-evaluate-inline
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13010 (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
13011 named eq)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13012 (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
13013 (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
13014 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
13015 (if (fboundp 'calc-eval)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13016 (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
13017
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13018 (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
13019 "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
13020 Will be filled automatically during use.")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13021
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13022 (defvar org-recalc-marks
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13023 '((" " . "Unmarked: no special line, no automatic recalculation")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13024 ("#" . "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
13025 ("*" . "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
13026 ("!" . "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
13027 ("$" . "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
13028 ("_" . "Names for values in row below this one.")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13029 ("^" . "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
13030
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13031 (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
13032 "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
13033 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
13034 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
13035 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
13036 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
13037 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
13038 of the new mark."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13039 (interactive)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13040 (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
13041 (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
13042 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13043 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13044 (l (org-current-line))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13045 (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
13046 (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
13047 (have-col
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13048 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13049 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13050 (not (re-search-forward "^[ \t]*|[^-|][^|]*[^#!$*_^| \t][^|]*|" end t))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13051 (col (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13052 (forcenew (car (assoc newchar org-recalc-marks)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13053 epos new)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13054 (when l1
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13055 (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
13056 (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
13057 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
13058 (if (and newchar (not forcenew))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13059 (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
13060 newchar))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13061 (if l1 (goto-line l1))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13062 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13063 (beginning-of-line 1)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13064 (unless (looking-at org-table-dataline-regexp)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13065 (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
13066 (unless have-col
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13067 (org-table-goto-column 1)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13068 (org-table-insert-column)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13069 (org-table-goto-column (1+ col)))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13070 (setq epos (point-at-eol))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13071 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13072 (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
13073 (org-table-get-field
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13074 1 (if (looking-at "^[ \t]*| *\\([#!$*^_ ]\\) *|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13075 (concat " "
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13076 (setq new (or forcenew
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13077 (cadr (member (match-string 1) marks))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13078 " ")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13079 " # ")))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13080 (if (and l1 l2)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13081 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13082 (goto-line l1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13083 (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
13084 (and (looking-at org-table-dataline-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13085 (org-table-get-field 1 (concat " " new " "))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13086 (goto-line l1)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13087 (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
13088 (goto-line l)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13089 (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
13090
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13091 (defun org-table-maybe-recalculate-line ()
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13092 "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
13093 (interactive)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13094 (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
13095 (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
13096 (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
13097 (save-excursion (beginning-of-line 1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13098 (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
13099 (fboundp 'calc-eval)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13100 (org-table-recalculate) t))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13101
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13102 (defvar org-table-formula-debug nil
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13103 "Non-nil means, debug table formulas.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13104 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
13105
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13106 (defvar modes)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13107 (defsubst org-set-calc-mode (var &optional value)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13108 (if (stringp var)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13109 (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
13110 ("R" calc-angle-mode rad)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13111 ("F" calc-prefer-frac t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13112 ("S" calc-symbolic-mode t)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13113 value (nth 2 var) var (nth 1 var)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13114 (if (memq var modes)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13115 (setcar (cdr (memq var modes)) value)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13116 (cons var (cons value modes)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13117 modes)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13118
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13119 (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
13120 suppress-align suppress-const
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13121 suppress-store)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13122 "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
13123
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13124 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
13125 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
13126 installed in order to use this function.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13127
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13128 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
13129 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
13130 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
13131 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
13132 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
13133
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13134 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
13135 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
13136 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
13137 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
13138 deleting columns with the corresponding commands.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13139
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13140 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
13141 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
13142
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13143 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
13144 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
13145 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
13146 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
13147 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
13148 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
13149 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
13150 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
13151 not overwrite the stored one."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13152 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13153 (require 'calc)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13154 (org-table-check-inside-data-field)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13155 (org-table-get-specials)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13156 (let* (fields
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13157 (ndown (if (integerp arg) arg 1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13158 (org-table-automatic-realign nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13159 (case-fold-search nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13160 (down (> ndown 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13161 (formula (if (and equation suppress-store)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13162 equation
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13163 (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
13164 (n0 (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13165 (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
13166 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
13167 ;; 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
13168 ;; 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
13169 (if (string-match ";" formula)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13170 (let ((tmp (org-split-string formula ";")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13171 (setq formula (car tmp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13172 fmt (concat (cdr (assoc "%" org-table-local-parameters))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13173 (nth 1 tmp)))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13174 (while (string-match "\\([pnfse]\\)\\(-?[0-9]+\\)" fmt)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13175 (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
13176 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
13177 (if (= c ?p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13178 (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
13179 (setq modes (org-set-calc-mode
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13180 '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
13181 (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
13182 (?s . sci) (?e . eng))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13183 n))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13184 (setq fmt (replace-match "" t t fmt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13185 (while (string-match "[DRFS]" fmt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13186 (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
13187 (setq fmt (replace-match "" t t fmt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13188 (unless (string-match "\\S-" fmt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13189 (setq fmt nil))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13190 (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
13191 (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
13192 (setq orig (or (get-text-property 1 :orig-formula formula) "?"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13193 (while (> ndown 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13194 (setq fields (org-split-string
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13195 (buffer-substring
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13196 (point-at-bol) (point-at-eol)) " *| *"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13197 (if org-table-formula-numbers-only
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13198 (setq fields (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13199 (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
13200 fields)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13201 (setq ndown (1- ndown))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13202 (setq form (copy-sequence formula)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13203 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
13204 ;; Insert the references to fields in same row
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13205 (while (string-match "\\$\\([0-9]+\\)?" form)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13206 (setq n (if (match-beginning 1)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
13207 (string-to-number (match-string 1 form))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13208 n0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13209 x (nth (1- n) fields))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13210 (unless x (error "Invalid field specifier \"%s\""
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13211 (match-string 0 form)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13212 (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
13213 (setq form (replace-match
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13214 (if lispp x (concat "(" x ")"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13215 t t form)))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13216 ;; 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
13217 (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
13218 (setq form (replace-match
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
13219 (save-match-data
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
13220 (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
13221 nil n0))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
13222 t t form)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13223 (if lispp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13224 (setq ev (eval (eval (read form)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13225 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
13226 (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
13227 (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
13228
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13229 (when org-table-formula-debug
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13230 (with-output-to-temp-buffer "*Help*"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13231 (princ (format "Substitution history of formula
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13232 Orig: %s
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13233 $xyz-> %s
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13234 $1-> %s\n" orig formula form))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13235 (if (listp ev)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13236 (princ (format " %s^\nError: %s"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13237 (make-string (car ev) ?\-) (nth 1 ev)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13238 (princ (format "Result: %s\nFormat: %s\nFinal: %s"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13239 ev (or fmt "NONE")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13240 (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
13241 (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
13242 (unless (and (interactive-p) (not ndown))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13243 (unless (let (inhibit-redisplay)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13244 (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
13245 (org-table-align)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13246 (error "Abort"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13247 (delete-window (get-buffer-window "*Help*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13248 (message "")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13249 (if (listp ev) (setq fmt nil ev "#ERROR"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13250 (org-table-justify-field-maybe
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13251 (if fmt (format fmt (string-to-number ev)) ev))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13252 (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
13253 (call-interactively 'org-return)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13254 (setq ndown 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13255 (and down (org-table-maybe-recalculate-line))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13256 (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
13257 (org-table-align)))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13258
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13259 (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
13260 "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
13261 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
13262 (interactive "P")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13263 (or (memq this-command org-recalc-commands)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13264 (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
13265 (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
13266 (org-table-get-specials)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13267 (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
13268 (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
13269 (inhibit-redisplay t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13270 (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
13271 (thisline (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13272 (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
13273 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
13274 ;; Insert constants in all formulas
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13275 (setq eqlist
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13276 (mapcar (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13277 (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
13278 x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13279 eqlist))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13280 ;; Split the equation list
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13281 (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
13282 (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
13283 (push eq eqlnum)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13284 (push eq eqlname)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13285 (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
13286 (if all
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13287 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13288 (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
13289 (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
13290 (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
13291 ;; 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
13292 (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
13293 ;; 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
13294 (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
13295 (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
13296 (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
13297 (setq beg (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13298 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
13299 (setq beg (point-at-bol)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13300 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
13301 (goto-char beg)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13302 (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
13303 (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
13304 (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
13305 ;; Unprotected line, recalculate
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13306 (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
13307 (setq cnt (1+ cnt))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13308 (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
13309 (setq eql eqlnum)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13310 (while (setq entry (pop eql))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13311 (goto-line org-last-recalc-line)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
13312 (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
13313 (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
13314 (goto-line thisline)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13315 (org-table-goto-column thiscol)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13316 (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
13317 (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
13318 ;; 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
13319 (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
13320 (setq name (car eq)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13321 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
13322 (when a
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13323 (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
13324 (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
13325 (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
13326 (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
13327 ;; back to initial position
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13328 (goto-line thisline)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13329 (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
13330 (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
13331 (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
13332
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13333 (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
13334 "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
13335 (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
13336 ;; First, check for column names
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13337 (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
13338 (setq start (1+ start))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13339 (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
13340 (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
13341 ;; Expand ranges to vectors
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13342 (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
13343 (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
13344 n2 (string-to-number (match-string 2 f))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13345 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
13346 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
13347 (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
13348 (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
13349 (setq s (concat s "]"))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13350 (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
13351 (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
13352 ;; Parameters and constants
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13353 (setq start 0)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13354 (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
13355 (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
13356 (if (setq a (save-match-data
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13357 (org-table-get-constant (match-string 1 f))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13358 (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
13359 (if org-table-formula-debug
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13360 (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
13361 f))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13362
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13363 (defun org-table-get-constant (const)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13364 "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
13365 Parameters get priority."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13366 (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
13367 (cdr (assoc const org-table-formula-constants))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13368 (and (fboundp 'constants-get) (constants-get const))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13369 "#UNDEFINED_NAME"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13370
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13371 (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
13372 (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
13373 (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
13374 (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
13375
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13376 (defvar org-pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13377
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13378 (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
13379 "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
13380 (interactive)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13381 (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
13382 (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
13383 (org-table-get-specials)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13384 (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
13385 (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
13386 (wc (current-window-configuration))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13387 entry loc s)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13388 (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
13389 (erase-buffer)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13390 (fundamental-mode)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13391 (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
13392 (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
13393 (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
13394 (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
13395 # 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
13396 # 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
13397 # 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
13398 (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
13399 (insert s)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13400 (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
13401 (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
13402 (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
13403 (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
13404 (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
13405 (insert s))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13406 (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
13407 (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
13408 (insert s))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13409 (goto-char (point-min))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13410 (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
13411
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13412 (defun org-show-variable ()
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13413 "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
13414 (interactive)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13415 (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
13416 (save-excursion
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13417 (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
13418 (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
13419 (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
13420 (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
13421 (cond
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13422 ((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
13423 (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
13424 (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
13425 (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
13426 (select-window win)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13427 (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
13428 ((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
13429 (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
13430 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13431 (goto-char (org-table-begin))
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
13432 (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
13433 (org-table-end) t)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13434 (progn
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13435 (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
13436 (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
13437 (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
13438 (select-window win))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13439 ((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
13440 ;; column number
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13441 (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
13442 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13443 (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
13444 (recenter 1)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13445 (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
13446 (org-table-end) t)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13447 (progn
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13448 (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
13449 (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
13450 (message "Column %s" var))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13451 (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
13452 (select-window win))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13453 ((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
13454 (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
13455 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13456 (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
13457 (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
13458 (progn
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13459 (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
13460 (message "Local parameter."))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13461 (error "Parameter not found"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13462 (select-window win))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13463 (t
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13464 (cond
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13465 ((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
13466 (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
13467 ((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
13468 (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
13469 (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
13470
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13471 (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
13472 "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
13473 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
13474 (interactive "P")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13475 (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
13476 (goto-char (point-min))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13477 (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
13478 (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
13479 (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
13480 (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
13481 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13482 (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
13483 (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
13484 (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
13485 (move-marker pos nil)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13486 (kill-buffer "*Edit Formulas*")
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
13487 (if arg
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13488 (org-table-recalculate 'all)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13489 (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
13490
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13491 (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
13492 "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
13493 (interactive)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13494 (let ((pos org-pos))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13495 (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
13496 (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
13497 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13498 (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
13499
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13500 ;;; The orgtbl minor mode
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13501
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13502 ;; 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
13503 ;; 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
13504
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13505 ;; 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
13506 ;; 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
13507 ;; 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
13508 ;; 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
13509 ;; 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
13510 ;; 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
13511 ;; 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
13512 ;; 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
13513 ;; 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
13514 ;; 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
13515 ;; 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
13516
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13517 ;; 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
13518 ;; 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
13519 ;; 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
13520
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13521 ;; 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
13522 ;; 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
13523 ;; 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
13524 ;; 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
13525 ;; 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
13526 ;; modified self-insert.
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 (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
13529 "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
13530 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
13531 (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
13532
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
13533 (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
13534 "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
13535
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13536 ;;;###autoload
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13537 (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
13538 "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
13539 (orgtbl-mode 1))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13540
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13541 ;;;###autoload
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13542 (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
13543 "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
13544 (interactive)
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
13545 (if (org-mode-p)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13546 ;; 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
13547 ;; by accident in org-mode.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13548 (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
13549 (setq orgtbl-mode
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13550 (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
13551 (if orgtbl-mode
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13552 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13553 (and (orgtbl-setup) (defun orgtbl-setup () nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13554 ;; 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
13555 (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
13556 (and c (setq minor-mode-map-alist
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13557 (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
13558 (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
13559 (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
13560 nil 'local)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13561 (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
13562 auto-fill-inhibit-regexp)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13563 (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
13564 (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
13565 (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
13566 "[ \t]*|"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13567 (org-add-to-invisibility-spec '(org-cwidth))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13568 (easy-menu-add orgtbl-mode-menu)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13569 (run-hooks 'orgtbl-mode-hook))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13570 (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
13571 (org-cleanup-narrow-column-properties)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13572 (org-remove-from-invisibility-spec '(org-cwidth))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13573 (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
13574 (easy-menu-remove orgtbl-mode-menu)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13575 (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
13576
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13577 (defun org-cleanup-narrow-column-properties ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13578 "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
13579 (let ((s 1))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13580 (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
13581 'display org-narrow-column-arrow))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13582 (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
13583 (setq s 1)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13584 (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
13585 (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
13586 (setq 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) 'invisible 'org-cwidth))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13588 (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
13589
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13590 ;; 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
13591 (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
13592 (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
13593 (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
13594
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13595 (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
13596 "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
13597 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
13598 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
13599 to execute outside of tables."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13600 (eval
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
13601 (list 'defun
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13602 (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
13603 '(arg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13604 (concat "In tables, run `" (symbol-name fun) "'.\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13605 "Outside of tables, run the binding of `"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13606 (mapconcat (lambda (x) (format "%s" x)) keys "' or `")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13607 "'.")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13608 '(interactive "p")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13609 (list 'if
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13610 '(org-at-table-p)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13611 (list 'call-interactively (list 'quote fun))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13612 (list 'let '(orgtbl-mode)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13613 (list 'call-interactively
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13614 (append '(or)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13615 (mapcar (lambda (k)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13616 (list 'key-binding k))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13617 keys)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13618 '('orgtbl-error))))))))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13619
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13620 (defun orgtbl-error ()
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13621 "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
13622 (interactive)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13623 (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
13624
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13625 (defun orgtbl-setup ()
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13626 "Setup orgtbl keymaps."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13627 (let ((nfunc 0)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13628 (bindings
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13629 (list
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13630 '([(meta shift left)] org-table-delete-column)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13631 '([(meta left)] org-table-move-column-left)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13632 '([(meta right)] org-table-move-column-right)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13633 '([(meta shift right)] org-table-insert-column)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13634 '([(meta shift up)] org-table-kill-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13635 '([(meta shift down)] org-table-insert-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13636 '([(meta up)] org-table-move-row-up)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13637 '([(meta down)] org-table-move-row-down)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13638 '("\C-c\C-w" org-table-cut-region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13639 '("\C-c\M-w" org-table-copy-region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13640 '("\C-c\C-y" org-table-paste-rectangle)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13641 '("\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
13642 ; '([(shift tab)] org-table-previous-field)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13643 '("\C-m" org-table-next-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13644 (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
13645 '([(meta return)] org-table-wrap-region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13646 '("\C-c\C-q" org-table-wrap-region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13647 '("\C-c?" org-table-current-column)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13648 '("\C-c " org-table-blank-field)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13649 '("\C-c+" org-table-sum)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13650 '("\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
13651 '("\C-c'" org-table-edit-formulas)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13652 '("\C-c`" org-table-edit-field)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13653 '("\C-c*" org-table-recalculate)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13654 '("\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
13655 '("\C-c^" org-table-sort-lines)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13656 '([(control ?#)] org-table-rotate-recalc-marks)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13657 elt key fun cmd)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13658 (while (setq elt (pop bindings))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13659 (setq nfunc (1+ nfunc))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13660 (setq key (car elt)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13661 fun (nth 1 elt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13662 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
13663 (define-key orgtbl-mode-map key cmd))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13664 ;; 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
13665 (define-key orgtbl-mode-map [(return)]
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13666 (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
13667 (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
13668 (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
13669 (define-key orgtbl-mode-map [(tab)]
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13670 (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
13671 (define-key orgtbl-mode-map "\C-i"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13672 (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
13673 (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
13674 (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
13675 (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
13676 (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
13677 (when orgtbl-optimized
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13678 ;; 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
13679 ;; 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
13680 (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
13681 '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
13682 'delete-char 'org-delete-char
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13683 '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
13684 (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
13685 (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
13686 '("OrgTbl"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13687 ["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
13688 ["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
13689 ["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
13690 ["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
13691 "--"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13692 ["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
13693 ["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
13694 ["Copy Field from Above"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13695 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
13696 "--"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13697 ("Column"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13698 ["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
13699 ["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
13700 ["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
13701 ["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
13702 "--"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13703 ["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
13704 ("Row"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13705 ["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
13706 ["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
13707 ["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
13708 ["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
13709 ["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
13710 "--"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13711 ["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
13712 ("Rectangle"
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
13713 ["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
13714 ["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
13715 ["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
13716 ["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
13717 "--"
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13718 ["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
13719 ["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
13720 ["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
13721 ["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
13722 ["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
13723 ["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
13724 ["Sum Column/Rectangle" org-table-sum
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13725 :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
13726 ["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
13727 ["Debug Formulas"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13728 (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
13729 :style toggle :selected org-table-formula-debug]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13730 ))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13731 t)
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13732
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13733 (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
13734 "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
13735 (interactive "P")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13736 (if arg (org-table-edit-field t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13737 (org-table-justify-field-maybe)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13738 (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
13739
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13740 (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
13741 "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
13742 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13743 (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
13744 (org-table-next-row))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13745
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13746 (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
13747 "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
13748 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
13749 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
13750 (interactive "p")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13751 (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
13752 (or
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13753 (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
13754 (member last-command
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13755 '(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
13756 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
13757 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
13758 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
13759 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
13760 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
13761 (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
13762 t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13763 (eq N 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13764 (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
13765 (let (org-table-may-need-update)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13766 (goto-char (1- (match-end 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13767 (delete-backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13768 (goto-char (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13769 (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
13770 (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
13771 (let (orgtbl-mode)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13772 (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
13773
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13774 (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
13775 "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
13776 (interactive "p")
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13777 (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
13778
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13779 ;;; Exporting
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13780
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13781 (defconst org-level-max 20)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13782
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13783 (defvar org-export-html-preamble nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13784 "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
13785 (defvar org-export-html-postamble nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13786 "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
13787 (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
13788 "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
13789 (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
13790 "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
13791
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13792 (defconst org-export-plist-vars
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13793 '((:language . org-export-default-language)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13794 (:headline-levels . org-export-headline-levels)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13795 (: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
13796 (:table-of-contents . org-export-with-toc)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
13797 (: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
13798 (:emphasize . org-export-with-emphasize)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13799 (: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
13800 (:TeX-macros . org-export-with-TeX-macros)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
13801 (: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
13802 (: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
13803 (:timestamps . org-export-with-timestamps)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13804 (:tables . org-export-with-tables)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13805 (: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
13806 (:style . org-export-html-style)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13807 (: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
13808 (: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
13809 (: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
13810 (:timestamp . org-export-html-with-timestamp)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13811 (:publishing-directory . org-export-publishing-directory)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13812 (:preamble . org-export-html-preamble)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13813 (:postamble . org-export-html-postamble)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13814 (: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
13815 (: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
13816 (:author . user-full-name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13817 (:email . user-mail-address)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13818
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13819 (defun org-default-export-plist ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13820 "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
13821 (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
13822 (while (setq e (pop l))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13823 (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
13824 rtn))
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-infile-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 file-local settings for export."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13828 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13829 (goto-char 0)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13830 (let ((re (org-make-options-regexp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13831 '("TITLE" "AUTHOR" "EMAIL" "TEXT" "OPTIONS" "LANGUAGE")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13832 p key val text options)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13833 (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
13834 (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
13835 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
13836 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13837 ((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
13838 ((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
13839 ((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
13840 ((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
13841 ((string-equal key "TEXT")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13842 (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
13843 ((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
13844 (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
13845 (when options
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13846 (let ((op '(("H" . :headline-levels)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13847 ("num" . :section-numbers)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13848 ("toc" . :table-of-contents)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13849 ("\\n" . :preserve-breaks)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13850 ("@" . :expand-quoted-html)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13851 (":" . :fixed-width)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13852 ("|" . :tables)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13853 ("^" . :sub-superscript)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13854 ("*" . :emphasize)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
13855 ("TeX" . :TeX-macros)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
13856 ("LaTeX" . :LaTeX-fragments)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13857 o)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13858 (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
13859 (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
13860 ":\\([^ \t\n\r;,.]*\\)")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13861 options)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13862 (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
13863 (car (read-from-string
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13864 (match-string 1 options)))))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13865 p)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13867 (defun org-combine-plists (&rest plists)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13868 "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
13869 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
13870 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
13871 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
13872 (let ((rtn (copy-sequence (pop plists)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13873 p v ls)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13874 (while plists
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13875 (setq ls (pop plists))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13876 (while ls
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13877 (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
13878 (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
13879 rtn))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13880
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13881 (defun org-export-directory (type plist)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13882 (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
13883 (dir (if (listp val)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13884 (or (cdr (assoc type val)) ".")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13885 val)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13886 dir))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13887
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13888 (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
13889 "Remove all lines from LIST which are before the first headline."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13890 (let ((orig-list list)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13891 (re (concat "^" outline-regexp)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13892 (while (and list
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13893 (not (string-match re (car list))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13894 (pop list))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13895 (or list orig-list)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13896
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13897 (defun org-skip-comments (lines)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13898 "Skip lines starting with \"#\" and subtrees starting with COMMENT."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13899 (let ((re1 (concat "^\\(\\*+\\)[ \t]+" org-comment-string))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13900 (re2 "^\\(\\*+\\)[ \t\n\r]")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13901 rtn line level)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13902 (while (setq line (pop lines))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13903 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13904 ((and (string-match re1 line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13905 (setq level (- (match-end 1) (match-beginning 1))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13906 ;; Beginning of a COMMENT subtree. Skip it.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13907 (while (and (setq line (pop lines))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13908 (or (not (string-match re2 line))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13909 (> (- (match-end 1) (match-beginning 1)) level))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13910 (setq lines (cons line lines)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13911 ((string-match "^#" line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13912 ;; an ordinary comment line
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13913 )
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
13914 ((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
13915 (string-match "^[ \t]*|" line)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
13916 (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
13917 (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
13918 (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
13919 ;; 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
13920 )
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13921 (t (setq rtn (cons line rtn)))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13922 (nreverse rtn)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13923
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13924 (defun org-export (&optional arg)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13925 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13926 (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
13927 \[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
13928
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13929 \[a] export as ASCII
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13930 \[h] export as HTML
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13931 \[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
13932 \[x] export as XOXO
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13933
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13934 \[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
13935 \[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
13936 \[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
13937
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13938 \[F] publish current file
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13939 \[P] publish current project
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13940 \[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
13941 \[A] publish all projects")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13942 (cmds
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
13943 '((?t . org-insert-export-options-template)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
13944 (?v . org-export-visible)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13945 (?a . org-export-as-ascii)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13946 (?h . org-export-as-html)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13947 (?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
13948 (?x . org-export-as-xoxo)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13949 (?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
13950 (?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
13951 (?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
13952 (?F . org-publish-current-file)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13953 (?P . org-publish-current-project)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13954 (?X . org-publish)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13955 (?A . org-publish-all)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13956 r1 r2 ass)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13957 (save-window-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13958 (delete-other-windows)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13959 (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
13960 (princ help))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13961 (message "Select command: ")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13962 (setq r1 (read-char-exclusive)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13963 (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
13964 (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
13965 (call-interactively (cdr ass))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13966 (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
13967
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13968 ;; ASCII
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13969
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13970 (defconst org-html-entities
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13971 '(("nbsp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13972 ("iexcl")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13973 ("cent")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13974 ("pound")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13975 ("curren")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13976 ("yen")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13977 ("brvbar")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13978 ("sect")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13979 ("uml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13980 ("copy")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13981 ("ordf")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13982 ("laquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13983 ("not")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13984 ("shy")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13985 ("reg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13986 ("macr")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13987 ("deg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13988 ("plusmn")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13989 ("sup2")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13990 ("sup3")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13991 ("acute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13992 ("micro")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13993 ("para")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13994 ("middot")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13995 ("odot"."o")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13996 ("star"."*")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13997 ("cedil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13998 ("sup1")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13999 ("ordm")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14000 ("raquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14001 ("frac14")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14002 ("frac12")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14003 ("frac34")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14004 ("iquest")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14005 ("Agrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14006 ("Aacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14007 ("Acirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14008 ("Atilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14009 ("Auml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14010 ("Aring") ("AA"."&Aring;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14011 ("AElig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14012 ("Ccedil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14013 ("Egrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14014 ("Eacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14015 ("Ecirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14016 ("Euml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14017 ("Igrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14018 ("Iacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14019 ("Icirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14020 ("Iuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14021 ("ETH")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14022 ("Ntilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14023 ("Ograve")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14024 ("Oacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14025 ("Ocirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14026 ("Otilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14027 ("Ouml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14028 ("times")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14029 ("Oslash")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14030 ("Ugrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14031 ("Uacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14032 ("Ucirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14033 ("Uuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14034 ("Yacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14035 ("THORN")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14036 ("szlig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14037 ("agrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14038 ("aacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14039 ("acirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14040 ("atilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14041 ("auml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14042 ("aring")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14043 ("aelig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14044 ("ccedil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14045 ("egrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14046 ("eacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14047 ("ecirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14048 ("euml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14049 ("igrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14050 ("iacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14051 ("icirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14052 ("iuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14053 ("eth")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14054 ("ntilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14055 ("ograve")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14056 ("oacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14057 ("ocirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14058 ("otilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14059 ("ouml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14060 ("divide")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14061 ("oslash")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14062 ("ugrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14063 ("uacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14064 ("ucirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14065 ("uuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14066 ("yacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14067 ("thorn")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14068 ("yuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14069 ("fnof")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14070 ("Alpha")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14071 ("Beta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14072 ("Gamma")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14073 ("Delta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14074 ("Epsilon")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14075 ("Zeta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14076 ("Eta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14077 ("Theta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14078 ("Iota")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14079 ("Kappa")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14080 ("Lambda")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14081 ("Mu")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14082 ("Nu")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14083 ("Xi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14084 ("Omicron")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14085 ("Pi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14086 ("Rho")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14087 ("Sigma")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14088 ("Tau")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14089 ("Upsilon")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14090 ("Phi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14091 ("Chi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14092 ("Psi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14093 ("Omega")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14094 ("alpha")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14095 ("beta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14096 ("gamma")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14097 ("delta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14098 ("epsilon")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14099 ("varepsilon"."&epsilon;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14100 ("zeta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14101 ("eta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14102 ("theta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14103 ("iota")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14104 ("kappa")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14105 ("lambda")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14106 ("mu")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14107 ("nu")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14108 ("xi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14109 ("omicron")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14110 ("pi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14111 ("rho")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14112 ("sigmaf") ("varsigma"."&sigmaf;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14113 ("sigma")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14114 ("tau")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14115 ("upsilon")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14116 ("phi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14117 ("chi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14118 ("psi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14119 ("omega")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14120 ("thetasym") ("vartheta"."&thetasym;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14121 ("upsih")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14122 ("piv")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14123 ("bull") ("bullet"."&bull;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14124 ("hellip") ("dots"."&hellip;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14125 ("prime")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14126 ("Prime")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14127 ("oline")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14128 ("frasl")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14129 ("weierp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14130 ("image")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14131 ("real")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14132 ("trade")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14133 ("alefsym")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14134 ("larr") ("leftarrow"."&larr;") ("gets"."&larr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14135 ("uarr") ("uparrow"."&uarr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14136 ("rarr") ("to"."&rarr;") ("rightarrow"."&rarr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14137 ("darr")("downarrow"."&darr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14138 ("harr") ("leftrightarrow"."&harr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14139 ("crarr") ("hookleftarrow"."&crarr;") ; has round hook, not quite CR
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14140 ("lArr") ("Leftarrow"."&lArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14141 ("uArr") ("Uparrow"."&uArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14142 ("rArr") ("Rightarrow"."&rArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14143 ("dArr") ("Downarrow"."&dArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14144 ("hArr") ("Leftrightarrow"."&hArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14145 ("forall")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14146 ("part") ("partial"."&part;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14147 ("exist") ("exists"."&exist;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14148 ("empty") ("emptyset"."&empty;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14149 ("nabla")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14150 ("isin") ("in"."&isin;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14151 ("notin")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14152 ("ni")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14153 ("prod")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14154 ("sum")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14155 ("minus")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14156 ("lowast") ("ast"."&lowast;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14157 ("radic")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14158 ("prop") ("proptp"."&prop;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14159 ("infin") ("infty"."&infin;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14160 ("ang") ("angle"."&ang;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14161 ("and") ("vee"."&and;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14162 ("or") ("wedge"."&or;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14163 ("cap")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14164 ("cup")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14165 ("int")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14166 ("there4")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14167 ("sim")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14168 ("cong") ("simeq"."&cong;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14169 ("asymp")("approx"."&asymp;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14170 ("ne") ("neq"."&ne;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14171 ("equiv")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14172 ("le")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14173 ("ge")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14174 ("sub") ("subset"."&sub;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14175 ("sup") ("supset"."&sup;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14176 ("nsub")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14177 ("sube")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14178 ("supe")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14179 ("oplus")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14180 ("otimes")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14181 ("perp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14182 ("sdot") ("cdot"."&sdot;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14183 ("lceil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14184 ("rceil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14185 ("lfloor")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14186 ("rfloor")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14187 ("lang")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14188 ("rang")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14189 ("loz") ("Diamond"."&loz;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14190 ("spades") ("spadesuit"."&spades;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14191 ("clubs") ("clubsuit"."&clubs;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14192 ("hearts") ("diamondsuit"."&hearts;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14193 ("diams") ("diamondsuit"."&diams;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14194 ("quot")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14195 ("amp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14196 ("lt")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14197 ("gt")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14198 ("OElig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14199 ("oelig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14200 ("Scaron")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14201 ("scaron")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14202 ("Yuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14203 ("circ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14204 ("tilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14205 ("ensp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14206 ("emsp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14207 ("thinsp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14208 ("zwnj")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14209 ("zwj")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14210 ("lrm")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14211 ("rlm")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14212 ("ndash")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14213 ("mdash")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14214 ("lsquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14215 ("rsquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14216 ("sbquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14217 ("ldquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14218 ("rdquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14219 ("bdquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14220 ("dagger")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14221 ("Dagger")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14222 ("permil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14223 ("lsaquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14224 ("rsaquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14225 ("euro")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14226
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14227 ("arccos"."arccos")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14228 ("arcsin"."arcsin")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14229 ("arctan"."arctan")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14230 ("arg"."arg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14231 ("cos"."cos")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14232 ("cosh"."cosh")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14233 ("cot"."cot")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14234 ("coth"."coth")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14235 ("csc"."csc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14236 ("deg"."deg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14237 ("det"."det")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14238 ("dim"."dim")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14239 ("exp"."exp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14240 ("gcd"."gcd")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14241 ("hom"."hom")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14242 ("inf"."inf")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14243 ("ker"."ker")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14244 ("lg"."lg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14245 ("lim"."lim")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14246 ("liminf"."liminf")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14247 ("limsup"."limsup")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14248 ("ln"."ln")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14249 ("log"."log")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14250 ("max"."max")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14251 ("min"."min")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14252 ("Pr"."Pr")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14253 ("sec"."sec")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14254 ("sin"."sin")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14255 ("sinh"."sinh")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14256 ("sup"."sup")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14257 ("tan"."tan")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14258 ("tanh"."tanh")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14259 )
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14260 "Entities for TeX->HTML translation.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14261 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
14262 \"&ent;\". An entry can also be a dotted pair like (\"ent\".\"&other;\").
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14263 In that case, \"\\ent\" will be translated to \"&other;\".
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14264 The list contains HTML entities for Latin-1, Greek and other symbols.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14265 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
14266 translations. There is currently no way for users to extend this.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14267
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14268 (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
14269 "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
14270 (interactive)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14271 (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
14272 (concat "\\([^<]\\)\\(" org-target-link-regexp "\\)")))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14273 (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
14274 (re-angle-link (concat "\\([^[]\\)" org-angle-link-re))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14275 (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
14276 rtn)
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14277 (save-excursion
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14278 (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
14279 (erase-buffer)
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14280 (insert string)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14281 (let ((org-inhibit-startup t)) (org-mode))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14282
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14283 ;; Get rid of archived trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14284 (when (not (eq org-export-with-archived-trees t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14285 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14286 (while (re-search-forward re-archive nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14287 (if (not (org-on-heading-p))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14288 (org-end-of-subtree t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14289 (beginning-of-line 1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14290 (delete-region
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14291 (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
14292 (org-end-of-subtree t)))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14293
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14294 ;; 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
14295 ;; 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
14296 (goto-char (point-min))
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14297 (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
14298 (replace-match "\\1(INVISIBLE)"))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14299
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14300 ;; Remove comments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14301 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14302 (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
14303 (replace-match ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14304
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14305 ;; 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
14306 (goto-char (point-min))
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
14307 (when re-radio
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
14308 (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
14309 (replace-match "\\1[[\\2]]")))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14310
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14311 ;; 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
14312 (goto-char (point-min))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14313 (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
14314 (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
14315 (goto-char (match-beginning 0)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14316
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14317 ;; Convert LaTeX fragments to images
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14318 (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
14319 (org-format-latex
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14320 (concat "ltxpng/" (file-name-sans-extension
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14321 (file-name-nondirectory
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14322 org-current-export-file)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14323 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
14324 (message "Exporting...")
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14325
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14326 ;; 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
14327 ;; Expand link abbreviations
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14328 (goto-char (point-min))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14329 (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
14330 (replace-match
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14331 (concat
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14332 (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
14333 t t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14334 (goto-char (point-min))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14335 (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
14336 (replace-match
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14337 (concat
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14338 (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
14339 t t))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14340 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14341 (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
14342 (replace-match
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14343 (concat "[[" (save-match-data
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14344 (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
14345 "]"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14346 (if (match-end 3)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14347 (match-string 2)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14348 (concat "[" (match-string 1) "]"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14349 "]")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14350 t t))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14351
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14352 ;; 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
14353 (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
14354 (goto-char (point-min))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14355 (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
14356 (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
14357 (goto-char (1- (match-end 0)))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14358
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14359 (setq rtn (buffer-string)))
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14360 (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
14361 rtn))
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14362
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14363 (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
14364 "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
14365 (save-match-data
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14366 (let* ((rtn
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14367 (mapconcat
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14368 'identity
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14369 (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
14370 (a (assoc rtn alist)))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14371 (or (cdr a) rtn))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14372
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14373 (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
14374 "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
14375 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
14376 level 5 etc."
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14377 (interactive)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14378 (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
14379 (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
14380 (save-excursion
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14381 (goto-char (point-min))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14382 (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
14383 (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
14384 (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
14385 (org-demote))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14386 (end-of-line 1))))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14387
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14388
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14389 (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
14390 "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
14391 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
14392 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
14393 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
14394 (interactive)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14395 (goto-char (point-min))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14396 ;; 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
14397 (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
14398 (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
14399 (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
14400 (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
14401 (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
14402 (save-excursion
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14403 (goto-char (point-min))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14404 (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
14405 (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
14406 (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
14407 (org-promote))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14408 (end-of-line 1))))))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14409
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14410 (defun org-tr-level (n)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14411 "Make N odd if required."
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14412 (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
14413
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
14414 (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
14415 (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
14416
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14417 (defun org-export-as-ascii (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14418 "Export the outline as a pretty ASCII file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14419 If there is an active region, export only the region.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14420 The prefix ARG specifies how many levels of the outline should become
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14421 underlined headlines. The default is 3."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14422 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14423 (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
14424 (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
14425 (org-infile-export-plist)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14426 (region
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14427 (buffer-substring
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14428 (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
14429 (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
14430 (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
14431 (org-skip-comments
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14432 (org-split-string
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14433 (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
14434 "[\r\n]"))))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14435 (org-ascii-current-indentation '(0 . 0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14436 (org-startup-with-deadline-check nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14437 (level 0) line txt
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14438 (umax nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14439 (case-fold-search nil)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14440 (filename (concat (file-name-as-directory
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14441 (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
14442 (file-name-sans-extension
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14443 (file-name-nondirectory buffer-file-name))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14444 ".txt"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14445 (buffer (find-file-noselect filename))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14446 (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
14447 (odd org-odd-levels-only)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14448 (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
14449 (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
14450 (author (plist-get opt-plist :author))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14451 (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
14452 (file-name-sans-extension
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14453 (file-name-nondirectory buffer-file-name))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14454 (email (plist-get opt-plist :email))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14455 (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
14456 (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
14457 (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14458 (text nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14459 (todo nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14460 (lang-words nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14461
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
14462 (setq org-last-level 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14463 (org-init-section-numbers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14464
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14465 (find-file-noselect filename)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14466
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14467 (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
14468 (assoc "en" org-export-language-setup)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14469 (if org-export-ascii-show-new-buffer
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14470 (switch-to-buffer-other-window buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14471 (set-buffer buffer))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14472 (erase-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14473 (fundamental-mode)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14474 ;; 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
14475 ;; functions get the correct information
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14476 (mapcar (lambda (x)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14477 (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
14478 (plist-get opt-plist (car x))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14479 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
14480 (org-set-local 'org-odd-levels-only odd)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14481 (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
14482 org-export-headline-levels))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14483
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14484 ;; File header
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14485 (if title (org-insert-centered title ?=))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14486 (insert "\n")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14487 (if (or author email)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14488 (insert (concat (nth 1 lang-words) ": " (or author "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14489 (if email (concat " <" email ">") "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14490 "\n")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14491 (if (and date time)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14492 (insert (concat (nth 2 lang-words) ": " date " " time "\n")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14493 (if text (insert (concat (org-html-expand-for-ascii text) "\n\n")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14494
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14495 (insert "\n\n")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14496
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14497 (if org-export-with-toc
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14498 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14499 (insert (nth 3 lang-words) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14500 (make-string (length (nth 3 lang-words)) ?=) "\n")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14501 (mapcar '(lambda (line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14502 (if (string-match org-todo-line-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14503 line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14504 ;; This is a headline
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14505 (progn
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14506 (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
14507 level (org-tr-level level)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14508 txt (match-string 3 line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14509 todo
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14510 (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
14511 (match-beginning 2)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14512 (not (equal (match-string 2 line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14513 org-done-string)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14514 ; TODO, not DONE
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14515 (and org-export-mark-todo-in-toc
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14516 (= level umax)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14517 (org-search-todo-below
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14518 line lines level))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14519 (setq txt (org-html-expand-for-ascii txt))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14520
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14521 (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
14522 (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
14523 (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
14524 (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
14525 (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
14526
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14527 (if org-export-with-section-numbers
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14528 (setq txt (concat (org-section-number level)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14529 " " txt)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14530 (if (<= level umax)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14531 (progn
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14532 (insert
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14533 (make-string (* (1- level) 4) ?\ )
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14534 (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
14535 (setq org-last-level level))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14536 ))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14537 lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14538
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14539 (org-init-section-numbers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14540 (while (setq line (pop lines))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14541 ;; Remove the quoted HTML tags.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14542 (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
14543 ;; Remove targets
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14544 (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
14545 (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
14546 ;; Replace internal links
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14547 (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
14548 (setq line (replace-match
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14549 (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
14550 t nil line)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14551 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14552 ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14553 ;; a Headline
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14554 (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
14555 txt (match-string 2 line))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14556 (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
14557 (t
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14558 (insert (org-fix-indentation line org-ascii-current-indentation) "\n"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14559 (normal-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14560 (save-buffer)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14561 ;; remove display and invisible chars
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14562 (let (beg end)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14563 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14564 (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
14565 (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
14566 (delete-region beg end)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14567 (goto-char beg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14568 (insert "=>"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14569 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14570 (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
14571 (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
14572 (delete-region beg end)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14573 (goto-char beg)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14574 (goto-char (point-min))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14575
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14576 (defun org-search-todo-below (line lines level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14577 "Search the subtree below LINE for any TODO entries."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14578 (let ((rest (cdr (memq line lines)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14579 (re org-todo-line-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14580 line lv todo)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14581 (catch 'exit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14582 (while (setq line (pop rest))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14583 (if (string-match re line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14584 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14585 (setq lv (- (match-end 1) (match-beginning 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14586 todo (and (match-beginning 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14587 (not (equal (match-string 2 line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14588 org-done-string))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14589 ; TODO, not DONE
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14590 (if (<= lv level) (throw 'exit nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14591 (if todo (throw 'exit t))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14592
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14593 (defun org-html-expand-for-ascii (line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14594 "Handle quoted HTML for ASCII export."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14595 (if org-export-html-expand
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14596 (while (string-match "@<[^<>\n]*>" line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14597 ;; We just remove the tags for now.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14598 (setq line (replace-match "" nil nil line))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14599 line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14600
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14601 (defun org-insert-centered (s &optional underline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14602 "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
14603 (let ((ind (max (/ (- 80 (string-width s)) 2) 0)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14604 (insert (make-string ind ?\ ) s "\n")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14605 (if underline
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14606 (insert (make-string ind ?\ )
69482
a305f07816a9 (org-insert-centered): Use `string-width' to make
Carsten Dominik <dominik@science.uva.nl>
parents: 69454
diff changeset
14607 (make-string (string-width s) underline)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14608 "\n"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14609
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14610 (defun org-ascii-level-start (level title umax &optional lines)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14611 "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
14612 (let (char (n (- level umax 1)) (ind 0))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14613 (if (> level umax)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14614 (progn
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14615 (insert (make-string (* 2 n) ?\ )
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14616 (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
14617 org-export-ascii-bullets))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14618 " " title "\n")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14619 ;; 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
14620 (catch 'stop
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14621 (while lines
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14622 (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
14623 (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
14624 (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
14625 (pop lines)))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14626 (setq org-ascii-current-indentation (cons (* 2 (1+ n)) ind)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14627 (if (or (not (equal (char-before) ?\n))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14628 (not (equal (char-before (1- (point))) ?\n)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14629 (insert "\n"))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14630 (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
14631 (unless org-export-with-tags
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14632 (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
14633 (setq title (replace-match "" t t title))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14634 (if org-export-with-section-numbers
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14635 (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
14636 (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
14637 (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
14638
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14639 (defun org-export-visible (type arg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14640 "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
14641 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
14642 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
14643 the `C-c C-e' export dispatcher.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14644 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
14645 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
14646 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
14647 command."
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14648 (interactive
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14649 (list (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14650 (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
14651 (read-char-exclusive))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14652 current-prefix-arg))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14653 (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
14654 (error "Invalid export key"))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14655 (let* ((binding (cdr (assoc type
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14656 '((?a . org-export-as-ascii)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14657 (?\C-a . org-export-as-ascii)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14658 (?b . org-export-as-html-and-open)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14659 (?\C-b . org-export-as-html-and-open)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14660 (?h . org-export-as-html)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14661 (?x . org-export-as-xoxo)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14662 (keepp (equal type ?\ ))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14663 (file buffer-file-name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14664 (buffer (get-buffer-create "*Org Export Visible*"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14665 s e)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14666 (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
14667 (save-excursion
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14668 (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
14669 (while (not (= (point) (point-max)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14670 (goto-char (org-find-invisible))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14671 (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
14672 (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
14673 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14674 (unless keepp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14675 ;; 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
14676 ;; 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
14677 ;; does do the trick.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14678 (if (looking-at "#[^\r\n]*")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14679 (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
14680 (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
14681 (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
14682 (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
14683 (set-buffer buffer)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14684 (let ((buffer-file-name file)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14685 (org-inhibit-startup t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14686 (org-mode)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14687 (show-all)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14688 (unless keepp (funcall binding arg))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14689 (if (not keepp)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14690 (kill-buffer buffer)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14691 (switch-to-buffer-other-window buffer)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14692 (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
14693
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14694 (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
14695 (let ((s (point)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14696 (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
14697 (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
14698 s))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14699 (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
14700 (let ((s (point)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14701 (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
14702 (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
14703 s))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14704
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14705 ;; HTML
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14706
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14707 (defun org-get-current-options ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14708 "Return a string with current options as keyword options.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14709 Does include HTML export options as well as TODO and CATEGORY stuff."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14710 (format
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14711 "#+TITLE: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14712 #+AUTHOR: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14713 #+EMAIL: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14714 #+LANGUAGE: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14715 #+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
14716 #+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
14717 #+CATEGORY: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14718 #+SEQ_TODO: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14719 #+TYP_TODO: %s
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14720 #+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
14721 #+TAGS: %s
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
14722 #+ARCHIVE: %s
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14723 #+LINK: %s
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14724 "
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14725 (buffer-name) (user-full-name) user-mail-address org-export-default-language
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14726 org-export-headline-levels
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14727 org-export-with-section-numbers
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14728 org-export-with-toc
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14729 org-export-preserve-breaks
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14730 org-export-html-expand
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14731 org-export-with-fixed-width
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14732 org-export-with-tables
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14733 org-export-with-sub-superscripts
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14734 org-export-with-emphasize
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14735 org-export-with-TeX-macros
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14736 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
14737 (file-name-nondirectory buffer-file-name)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14738 (if (equal org-todo-interpretation 'sequence)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14739 (mapconcat 'identity org-todo-keywords " ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14740 "TODO FEEDBACK VERIFY DONE")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14741 (if (equal org-todo-interpretation 'type)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14742 (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
14743 "Me Jason Marie DONE")
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
14744 (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
14745 '((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
14746 (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
14747 (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
14748 (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
14749 (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
14750 (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
14751 (or (mapconcat (lambda (x)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14752 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14753 ((equal '(:startgroup) x) "{")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14754 ((equal '(:endgroup) x) "}")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14755 ((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
14756 (t (car x))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14757 (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
14758 org-archive-location
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14759 "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
14760 ))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14761
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14762 (defun org-insert-export-options-template ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14763 "Insert into the buffer a template with information for exporting."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14764 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14765 (if (not (bolp)) (newline))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14766 (let ((s (org-get-current-options)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14767 (and (string-match "#\\+CATEGORY" s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14768 (setq s (substring s 0 (match-beginning 0))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14769 (insert s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14770
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14771 (defun org-toggle-fixed-width-section (arg)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14772 "Toggle the fixed-width export.
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14773 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
14774 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
14775 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
14776 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
14777 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
14778 this line is also exported in fixed-width font."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14779 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14780 (let* ((cc 0)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14781 (regionp (org-region-active-p))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14782 (beg (if regionp (region-beginning) (point)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14783 (end (if regionp (region-end)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14784 (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
14785 (re "[ \t]*\\(:\\)")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14786 off)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14787 (if regionp
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14788 (save-excursion
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14789 (goto-char beg)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14790 (setq cc (current-column))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14791 (beginning-of-line 1)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14792 (setq off (looking-at re))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14793 (while (> nlines 0)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14794 (setq nlines (1- nlines))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14795 (beginning-of-line 1)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14796 (cond
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14797 (arg
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14798 (move-to-column cc t)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14799 (insert ":\n")
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14800 (forward-line -1))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14801 ((and off (looking-at re))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14802 (replace-match "" t t nil 1))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14803 ((not off) (move-to-column cc t) (insert ":")))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14804 (forward-line 1)))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14805 (save-excursion
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14806 (org-back-to-heading)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14807 (if (looking-at (concat outline-regexp
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14808 "\\( +\\<" org-quote-string "\\>\\)"))
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 (if (looking-at outline-regexp)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14811 (progn
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14812 (goto-char (match-end 0))
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
14813 (insert " " org-quote-string))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14814
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14815 (defun org-export-as-html-and-open (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14816 "Export the outline as HTML and immediately open it with a browser.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14817 If there is an active region, export only the region.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14818 The prefix ARG specifies how many levels of the outline should become
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14819 headlines. The default is 3. Lower levels will become bulleted lists."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14820 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14821 (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
14822 (org-open-file buffer-file-name))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14823
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14824 (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
14825 "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
14826 emacs --batch
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14827 --load=$HOME/lib/emacs/org.el
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14828 --eval \"(setq org-export-headline-levels 2)\"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14829 --visit=MyFile --funcall org-export-as-html-batch"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14830 (org-export-as-html org-export-headline-levels 'hidden))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14831
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14832 (defun org-export-as-html (arg &optional hidden ext-plist)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14833 "Export the outline as a pretty HTML file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14834 If there is an active region, export only the region.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14835 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
14836 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
14837 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
14838 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
14839 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
14840 (interactive "P")
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14841 (message "Exporting...")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14842 (setq-default org-todo-line-regexp org-todo-line-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14843 (setq-default org-deadline-line-regexp org-deadline-line-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14844 (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
14845 (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
14846 ext-plist
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14847 (org-infile-export-plist)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14848
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14849 (style (plist-get opt-plist :style))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14850 (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
14851 valid
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14852 (odd org-odd-levels-only)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14853 (region-p (org-region-active-p))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14854 (region
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14855 (buffer-substring
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14856 (if region-p (region-beginning) (point-min))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14857 (if region-p (region-end) (point-max))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14858 ;; The following two are dynamically scoped into other
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14859 ;; routines below.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14860 (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
14861 (org-current-export-file buffer-file-name)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14862 (all_lines
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14863 (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
14864 (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
14865 region :emph-multiline
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14866 (if (plist-get opt-plist :LaTeX-fragments)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14867 :LaTeX-fragments))
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14868 "[\r\n]")))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14869 (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
14870 (level 0) (line "") (origline "") txt todo
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14871 (umax nil)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14872 (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
14873 (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
14874 (file-name-sans-extension
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14875 (file-name-nondirectory buffer-file-name))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14876 ".html"))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14877 (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
14878 (buffer (find-file-noselect filename))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14879 (levels-open (make-vector org-level-max nil))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14880 (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
14881 (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
14882 (author (plist-get opt-plist :author))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14883 (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
14884 (file-name-sans-extension
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14885 (file-name-nondirectory buffer-file-name))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14886 (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
14887 (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14888 (inquote nil)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14889 (infixed nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14890 (in-local-list nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14891 (local-list-num nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14892 (local-list-indent nil)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
14893 (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
14894 (email (plist-get opt-plist :email))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14895 (language (plist-get opt-plist :language))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14896 (text (plist-get opt-plist :text))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14897 (lang-words nil)
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14898 (target-alist nil) tg
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14899 (head-count 0) cnt
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14900 (start 0)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14901 (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
14902 buffer-file-coding-system))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14903 (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
14904 (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
14905 (charset (and coding-system
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14906 (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
14907 (coding-system-get coding-system 'mime-charset)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14908 table-open type
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14909 table-buffer table-orig-buffer
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14910 ind start-is-num starter
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14911 rpl path desc descp desc1 desc2 link
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14912 )
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14913 (message "Exporting...")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14914
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
14915 (setq org-last-level 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14916 (org-init-section-numbers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14917
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14918 ;; Get the language-dependent settings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14919 (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
14920 (assoc "en" org-export-language-setup)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14921
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14922 ;; Switch to the output buffer
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14923 (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
14924 (set-buffer buffer)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14925 (switch-to-buffer-other-window buffer))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14926 (erase-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14927 (fundamental-mode)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14928 (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
14929 (org-odd-levels-only odd))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14930 ;; 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
14931 ;; functions get the correct information
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14932 (mapcar (lambda (x)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14933 (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
14934 (plist-get opt-plist (car x))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14935 org-export-plist-vars)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14936 (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
14937 org-export-headline-levels))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14938
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14939 ;; File header
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14940 (insert (format
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14941 "<!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
14942 \"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
14943 <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
14944 lang=\"%s\" xml:lang=\"%s\">
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14945 <head>
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14946 <title>%s</title>
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14947 <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
14948 <meta name=\"generator\" content=\"Org-mode\"/>
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14949 <meta name=\"generated\" content=\"%s %s\"/>
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14950 <meta name=\"author\" content=\"%s\"/>
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14951 %s
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14952 </head><body>
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14953 "
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14954 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
14955 date time author style))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14956
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14957
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14958 (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
14959
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14960 (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
14961 (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
14962 (org-html-expand title))))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14963 (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
14964
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14965 (if org-export-with-toc
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14966 (progn
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14967 (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
14968 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
14969 (nth 3 lang-words)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14970 org-export-html-toplevel-hlevel))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14971 (insert "<ul>\n<li>")
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14972 (setq lines
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14973 (mapcar '(lambda (line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14974 (if (string-match org-todo-line-regexp line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14975 ;; This is a headline
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14976 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14977 (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
14978 level (org-tr-level level)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14979 txt (save-match-data
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14980 (org-html-expand
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
14981 (org-export-cleanup-toc-line
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14982 (match-string 3 line))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14983 todo
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14984 (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
14985 (match-beginning 2)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14986 (not (equal (match-string 2 line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14987 org-done-string)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14988 ; TODO, not DONE
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14989 (and org-export-mark-todo-in-toc
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14990 (= level umax)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14991 (org-search-todo-below
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14992 line lines level))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14993 (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
14994 (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
14995 (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
14996 (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
14997 (setq txt (replace-match "" t t txt)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14998 (if org-export-with-section-numbers
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14999 (setq txt (concat (org-section-number level)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15000 " " txt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15001 (if (<= level umax)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15002 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15003 (setq head-count (+ head-count 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15004 (if (> level org-last-level)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15005 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15006 (setq cnt (- level org-last-level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15007 (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
15008 (insert "\n<ul>\n<li>"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15009 (insert "\n")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15010 (if (< level org-last-level)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15011 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15012 (setq cnt (- org-last-level level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15013 (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
15014 (insert "</li>\n</ul>"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15015 (insert "\n")))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15016 ;; Check for targets
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15017 (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
15018 (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
15019 line (replace-match
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15020 (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
15021 t t line))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15022 (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
15023 (format "sec-%d" head-count))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15024 target-alist))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15025 (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
15026 (setq txt (replace-match "" t t txt)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15027 (insert
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15028 (format
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15029 (if todo
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15030 "</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
15031 "</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
15032 head-count txt))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15033
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15034 (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
15035 )))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15036 line)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15037 lines))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15038 (while (> org-last-level 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15039 (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
15040 (insert "</li>\n</ul>\n"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15041 ))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15042 (setq head-count 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15043 (org-init-section-numbers)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15044
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15045 (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
15046 (catch 'nextline
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15047
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15048 ;; end of quote section?
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15049 (when (and inquote (string-match "^\\*+" line))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15050 (insert "</pre>\n")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15051 (setq inquote nil))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15052 ;; inside a quote section?
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15053 (when inquote
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15054 (insert (org-html-protect line) "\n")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15055 (throw 'nextline nil))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15056
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15057 ;; verbatim lines
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15058 (when (and org-export-with-fixed-width
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15059 (string-match "^[ \t]*:\\(.*\\)" line))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15060 (when (not infixed)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15061 (setq infixed t)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15062 (insert "<pre>\n"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15063 (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
15064 (when (and lines
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15065 (not (string-match "^[ \t]*\\(:.*\\)"
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15066 (car lines))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15067 (setq infixed nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15068 (insert "</pre>\n"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15069 (throw 'nextline nil))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15070
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
15071
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
15072 ;; make targets to anchors
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15073 (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
15074 (cond
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15075 ((match-end 2)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15076 (setq line (replace-match
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15077 (concat "@<a name=\""
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15078 (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
15079 "\">\\nbsp@</a>")
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15080 t t line)))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15081 ((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
15082 (setq line (replace-match
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15083 (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
15084 ; (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
15085 t t line)))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15086 (t
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15087 (setq line (replace-match
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15088 (concat "@<a name=\""
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15089 (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
15090 "\" 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
15091 t t line)))))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15092
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15093 (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
15094
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15095 ;; 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
15096 ;; 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
15097 ;; Also handle sub_superscripts and checkboxes
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15098 (setq line (org-html-expand line))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15099
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15100 ;; Format the links
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15101 (setq start 0)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15102 (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
15103 (setq start (match-beginning 0))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15104 (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
15105 (setq path (match-string 3 line))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15106 (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
15107 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
15108 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
15109 desc (or desc1 desc2))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15110 ;; 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
15111 (cond
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15112 ((equal type "internal")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15113 (setq rpl
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15114 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15115 "<a href=\"#"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15116 (org-solidify-link-text path target-alist)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15117 "\">" desc "</a>")))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15118 ((member type '("http" "https" "ftp" "mailto" "news"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15119 ;; standard URL
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15120 (setq link (concat type ":" path))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15121 (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
15122 ((string= type "file")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15123 ;; FILE link
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15124 (let* ((filename path)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15125 (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
15126 thefile file-is-image-p search)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15127 (save-match-data
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15128 (if (string-match "::\\(.*\\)" filename)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15129 (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
15130 filename (replace-match "" t nil filename)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15131 (setq valid
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15132 (if (functionp link-validate)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15133 (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
15134 t))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15135 (setq file-is-image-p
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15136 (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
15137 (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
15138 (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
15139 (string-match "\\.org$" thefile))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15140 (setq thefile (concat (substring thefile 0
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15141 (match-beginning 0))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15142 ".html"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15143 (if (and search
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15144 ;; 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
15145 (not (string-match "^[0-9]*$" search))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15146 (not (string-match "^\\*" search))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15147 (not (string-match "^/.*/$" search)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15148 (setq thefile (concat thefile "#"
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15149 (org-solidify-link-text
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15150 (org-link-unescape search)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15151 (when (string-match "^file:" desc)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15152 (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
15153 (if (string-match "\\.org$" desc)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15154 (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
15155 (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
15156 (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
15157 (and org-export-html-inline-images
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15158 (not descp))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15159 (concat "<img src=\"" thefile "\"/>")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15160 (concat "<a href=\"" thefile "\">" desc "</a>")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15161 (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
15162 ((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
15163 (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
15164 (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
15165 "&gt;</i>"))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15166 (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
15167 start (+ start (length rpl))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15168 ;; TODO items
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15169 (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
15170 (match-beginning 2))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15171 (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
15172 (setq line (replace-match
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15173 "<span class=\"done\">\\2</span>"
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15174 t nil line 2))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15175 (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
15176 t nil line 2))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15177
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15178 (cond
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15179 ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15180 ;; This is a headline
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15181 (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
15182 txt (match-string 2 line))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15183 (if (string-match quote-re0 txt)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15184 (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
15185 (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
15186 (when in-local-list
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15187 ;; 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
15188 (while local-list-num
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15189 (org-close-li)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15190 (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
15191 (pop local-list-num))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15192 (setq local-list-indent nil
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15193 in-local-list nil))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15194 (org-html-level-start level txt umax
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15195 (and org-export-with-toc (<= level umax))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15196 head-count)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15197 ;; QUOTES
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15198 (when (string-match quote-re line)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15199 (insert "<pre>")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15200 (setq inquote t)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15201
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15202 ((and org-export-with-tables
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15203 (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15204 (if (not table-open)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15205 ;; New table starts
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15206 (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
15207 ;; Accumulate lines
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15208 (setq table-buffer (cons line table-buffer)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15209 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
15210 (when (or (not lines)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15211 (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)"
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15212 (car lines))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15213 (setq table-open nil
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15214 table-buffer (nreverse table-buffer)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15215 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
15216 (org-close-par-maybe)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15217 (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
15218 (t
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15219 ;; Normal lines
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15220 (when (string-match
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15221 (cond
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
15222 ((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
15223 ((= 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
15224 ((= 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
15225 (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
15226 line)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15227 (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
15228 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
15229 starter (if (match-beginning 2)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15230 (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
15231 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
15232 (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
15233 ;; 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
15234 (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
15235 (while (and in-local-list
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15236 (or (and (= ind (car local-list-indent))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15237 (not starter))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15238 (< ind (car local-list-indent))))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15239 (org-close-li)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15240 (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
15241 (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
15242 (setq in-local-list local-list-indent))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15243 (cond
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15244 ((and starter
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15245 (or (not in-local-list)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15246 (> ind (car local-list-indent))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15247 ;; Start new (level of ) list
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15248 (org-close-par-maybe)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15249 (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
15250 (push start-is-num local-list-num)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15251 (push ind local-list-indent)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15252 (setq in-local-list t))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15253 (starter
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15254 ;; continue current list
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15255 (org-close-li)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15256 (insert "<li>\n")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15257 (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
15258 (setq line
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15259 (replace-match
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15260 (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
15261 "<b>[X]</b>"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15262 "<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
15263 t t line))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15264
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15265 ;; 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
15266 ;; are not fully interpreted, lines starting with "-", "+", "*"
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15267 ;; also start a new paragraph.
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15268 (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
15269
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15270 ;; 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
15271 (cond
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15272 ((string-match "\\\\\\\\[ \t]*$" line)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15273 (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
15274 (org-export-preserve-breaks
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15275 (setq line (concat line "<br/>"))))
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 (insert line "\n")))))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15278
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15279 ;; 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
15280 (when inquote (insert "</pre>\n"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15281 (when in-local-list
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15282 ;; 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
15283 (while local-list-num
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15284 (org-close-li)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15285 (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
15286 (pop local-list-num))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15287 (setq local-list-indent nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15288 in-local-list nil))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15289 (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
15290 (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
15291 head-count)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15292
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15293 (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
15294 (when author
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15295 (insert "<p class=\"author\"> "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15296 (nth 1 lang-words) ": " author "\n")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15297 (when email
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15298 (insert "<a href=\"mailto:" email "\">&lt;"
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15299 email "&gt;</a>\n"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15300 (insert "</p>\n"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15301 (when (and date time)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15302 (insert "<p class=\"date\"> "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15303 (nth 2 lang-words) ": "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15304 date " " time "</p>\n")))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15305
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15306 (if org-export-html-with-timestamp
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15307 (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
15308 (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
15309 (insert "</body>\n</html>\n")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15310 (normal-mode)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15311 ;; remove empty paragraphs and lists
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15312 (goto-char (point-min))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15313 (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
15314 (replace-match ""))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15315 (goto-char (point-min))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15316 (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
15317 (replace-match ""))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15318 (save-buffer)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15319 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15320 (message "Exporting... done"))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15321
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15322
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15323 (defun org-format-table-html (lines olines)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15324 "Find out which HTML converter to use and return the HTML code."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15325 (if (string-match "^[ \t]*|" (car lines))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15326 ;; A normal org table
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15327 (org-format-org-table-html lines)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15328 ;; Table made by table.el - test for spanning
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15329 (let* ((hlines (delq nil (mapcar
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15330 (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15331 (if (string-match "^[ \t]*\\+-" x) x
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15332 nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15333 lines)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15334 (first (car hlines))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15335 (ll (and (string-match "\\S-+" first)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15336 (match-string 0 first)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15337 (re (concat "^[ \t]*" (regexp-quote ll)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15338 (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
15339 hlines))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15340 (if (and (not spanning)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15341 (not org-export-prefer-native-exporter-for-tables))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15342 ;; 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
15343 (org-format-table-table-html lines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15344 ;; 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
15345 (org-format-table-table-html-using-table-generate-source olines)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15346
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15347 (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
15348 "Format a table into HTML."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15349 (if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15350 (setq lines (nreverse lines))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15351 (if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15352 (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
15353 (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
15354 ;; 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
15355 ;; 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
15356 (let* ((special
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15357 (not
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15358 (memq nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15359 (mapcar
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15360 (lambda (x)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15361 (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
15362 (string-match "^[ \t]*| *\\([#!$*_^ ]\\) *|" x)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15363 lines)))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15364 (if special
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15365 (setq lines
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15366 (delq nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15367 (mapcar
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15368 (lambda (x)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15369 (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
15370 nil ; ignore this line
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15371 (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
15372 (string-match "^[ \t]*|[^|]*|" x))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15373 (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
15374 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
15375
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15376 (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
15377 (delq nil (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15378 (lambda (x) (string-match "^[ \t]*|-" x))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15379 (cdr lines)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15380 line fields html)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15381 (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
15382 (while (setq line (pop lines))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15383 (catch 'next-line
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15384 (if (string-match "^[ \t]*|-" line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15385 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15386 (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
15387 ;; ignore this line
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15388 (throw 'next-line t)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15389 ;; Break the line into fields
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15390 (setq fields (org-split-string line "[ \t]*|[ \t]*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15391 (setq html (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15392 html
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15393 "<tr>"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15394 (mapconcat (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15395 (if head
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15396 (concat "<th>" x "</th>")
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15397 (concat "<td>" x "</td>")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15398 fields "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15399 "</tr>\n"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15400 (setq html (concat html "</table>\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15401 html))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15402
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15403 (defun org-fake-empty-table-line (line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15404 "Replace everything except \"|\" with spaces."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15405 (let ((i (length line))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15406 (newstr (copy-sequence line)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15407 (while (> i 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15408 (setq i (1- i))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15409 (if (not (eq (aref newstr i) ?|))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15410 (aset newstr i ?\ )))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15411 newstr))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15412
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15413 (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
15414 "Format a table generated by table.el into HTML.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15415 This conversion does *not* use `table-generate-source' from table.el.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15416 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
15417 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
15418 (let (line field-buffer
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15419 (head org-export-highlight-first-table-line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15420 fields html empty)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15421 (setq html (concat org-export-html-table-tag "\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15422 (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
15423 (setq empty "&nbsp;")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15424 (catch 'next-line
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15425 (if (string-match "^[ \t]*\\+-" line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15426 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15427 (if field-buffer
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15428 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15429 (setq html (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15430 html
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15431 "<tr>"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15432 (mapconcat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15433 (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15434 (if (equal x "") (setq x empty))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15435 (if head
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15436 (concat "<th>" x "</th>\n")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15437 (concat "<td>" x "</td>\n")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15438 field-buffer "\n")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15439 "</tr>\n"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15440 (setq head nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15441 (setq field-buffer nil)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15442 ;; Ignore this line
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15443 (throw 'next-line t)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15444 ;; 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
15445 (setq fields (org-split-string line "[ \t]*|[ \t]*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15446 (if field-buffer
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15447 (setq field-buffer (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15448 (lambda (x)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15449 (concat x "<br/>" (pop fields)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15450 field-buffer))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15451 (setq field-buffer fields))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15452 (setq html (concat html "</table>\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15453 html))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15454
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15455 (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
15456 "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
15457 This has the advantage that cell- or row-spanning is allowed.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15458 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
15459 (require 'table)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
15460 (with-current-buffer (get-buffer-create " org-tmp1 ")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15461 (erase-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15462 (insert (mapconcat 'identity lines "\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15463 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15464 (if (not (re-search-forward "|[^+]" nil t))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15465 (error "Error processing table"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15466 (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
15467 (with-current-buffer (get-buffer-create " org-tmp2 ") (erase-buffer))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15468 (table-generate-source 'html " org-tmp2 ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15469 (set-buffer " org-tmp2 ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15470 (buffer-substring (point-min) (point-max))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15471
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15472 (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
15473 "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
15474 (catch 'exit
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15475 (let (r b)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15476 (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
15477 (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
15478 ;; never export CLOCK
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15479 (throw 'exit ""))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15480 (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
15481 (if (not org-export-with-timestamps)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15482 (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
15483 s (substring s (match-end 0)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15484 (setq r (concat
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15485 r (substring s 0 (match-beginning 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15486 (if (match-end 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15487 (format "@<span class=\"timestamp-kwd\">%s @</span>"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15488 (match-string 1 s)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15489 (format " @<span class=\"timestamp\">%s@</span>"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15490 (substring (match-string 3 s) 1 -1)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15491 s (substring s (match-end 0)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15492 ;; 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
15493 (if (not r)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15494 s
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15495 (setq r (concat r s))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15496 (unless (string-match "\\S-" (concat b s))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15497 (setq r (concat r "@<br/>")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15498 r))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15499
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15500 (defun org-html-protect (s)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15501 ;; 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
15502 (let ((start 0))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15503 (while (string-match "&" s start)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15504 (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
15505 start (1+ (match-beginning 0))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15506 (while (string-match "<" s)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15507 (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
15508 (while (string-match ">" s)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15509 (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
15510 s)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15511
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
15512 (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
15513 "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
15514 (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
15515 (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
15516 (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
15517 (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
15518 (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
15519 s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15520
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15521 (defun org-html-expand (string)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15522 "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
15523 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
15524 (let* (m s l res)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15525 (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
15526 (setq s (substring string 0 m)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15527 l (match-string 0 string)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15528 string (substring string (match-end 0)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15529 (push (org-html-do-expand s) res)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15530 (push l res))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15531 (push (org-html-do-expand string) res)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15532 (apply 'concat (nreverse res))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15533
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15534 (defun org-html-do-expand (s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15535 "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
15536 (setq s (org-html-protect s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15537 (if org-export-html-expand
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15538 (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
15539 (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
15540 (if org-export-with-emphasize
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15541 (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
15542 (if org-export-with-sub-superscripts
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15543 (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
15544 (if org-export-with-TeX-macros
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15545 (let ((start 0) wd ass)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15546 (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
15547 (setq wd (match-string 1 s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15548 (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
15549 (setq s (replace-match (or (cdr ass)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15550 (concat "&" (car ass) ";"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15551 t t s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15552 (setq start (+ start (length wd)))))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15553 s)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15554
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15555 (defun org-create-multibrace-regexp (left right n)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15556 "Create a regular expression which will match a balanced sexp.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15557 Opening delimiter is LEFT, and closing delimiter is RIGHT, both given
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15558 as single character strings.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15559 The regexp returned will match the entire expression including the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15560 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
15561 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
15562 stacked delimiters is N. Escaping delimiters is not possible."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15563 (let* ((nothing (concat "[^" "\\" left "\\" right "]*?"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15564 (or "\\|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15565 (re nothing)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15566 (next (concat "\\(?:" nothing left nothing right "\\)+" nothing)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15567 (while (> n 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15568 (setq n (1- n)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15569 re (concat re or next)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15570 next (concat "\\(?:" nothing left next right "\\)+" nothing)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15571 (concat left "\\(" re "\\)" right)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15572
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15573 (defvar org-match-substring-regexp
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15574 (concat
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15575 "\\([^\\]\\)\\([_^]\\)\\("
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15576 "\\(" (org-create-multibrace-regexp "{" "}" org-match-sexp-depth) "\\)"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15577 "\\|"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15578 "\\(" (org-create-multibrace-regexp "(" ")" org-match-sexp-depth) "\\)"
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 "\\(\\(?:\\*\\|[-+]?[^-+*!@#$%^_ \t\r\n,:\"?<>~;./{}=()]+\\)\\)\\)")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15581 "The regular expression matching a sub- or superscript.")
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 (defun org-export-html-convert-sub-super (string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15584 "Convert sub- and superscripts in STRING to HTML."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15585 (let (key c)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15586 (while (string-match org-match-substring-regexp string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15587 (setq key (if (string= (match-string 2 string) "_") "sub" "sup"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15588 (setq c (or (match-string 8 string)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15589 (match-string 6 string)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15590 (match-string 5 string)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15591 (setq string (replace-match
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15592 (concat (match-string 1 string)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15593 "<" key ">" c "</" key ">")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15594 t t string)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15595 (while (string-match "\\\\\\([_^]\\)" string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15596 (setq string (replace-match (match-string 1 string) t t string))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15597 string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15598
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15599 (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
15600 "Apply emphasis."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15601 (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
15602 (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
15603 string)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15604
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15605 (defvar org-par-open nil)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15606 (defun org-open-par ()
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15607 "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
15608 (org-close-par-maybe)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15609 (insert "\n<p>")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15610 (setq org-par-open t))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15611 (defun org-close-par-maybe ()
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15612 "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
15613 (when org-par-open
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15614 (insert "</p>")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15615 (setq org-par-open nil)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15616 (defun org-close-li ()
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15617 "Close <li> if necessary."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15618 (org-close-par-maybe)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15619 (insert "</li>\n"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15620 ; (when (save-excursion
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15621 ; (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
15622 ; (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
15623 ; (insert "</li>"))))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15624
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15625 (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
15626 "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
15627 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
15628 (org-close-par-maybe)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15629 (let ((l (1+ (max level umax))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15630 (while (<= l org-level-max)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15631 (if (aref levels-open (1- l))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15632 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15633 (org-html-level-close l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15634 (aset levels-open (1- l) nil)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15635 (setq l (1+ l)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15636 (when title
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15637 ;; 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
15638 ;; 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
15639 (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
15640 (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
15641 (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
15642 (save-match-data
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15643 (concat
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15644 "&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
15645 (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
15646 (match-string 1 title) ":")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15647 "&nbsp;")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15648 "</span>"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15649 "")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15650 t t title)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15651 (if (> level umax)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15652 (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15653 (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
15654 (progn
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15655 (org-close-li)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15656 (insert "<li>" title "<br/>\n"))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15657 (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
15658 (org-close-par-maybe)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15659 (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
15660 (if org-export-with-section-numbers
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15661 (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
15662 (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
15663 (if with-toc
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15664 (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
15665 level head-count title level))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15666 (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
15667 (org-open-par)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15668
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
15669 (defun org-html-level-close (&rest args)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15670 "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
15671 (org-close-li)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15672 (insert "</ul>"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15673
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15674 ;; Variable holding the vector with section numbers
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15675 (defvar org-section-numbers (make-vector org-level-max 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15676
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15677 (defun org-init-section-numbers ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15678 "Initialize the vector for the section numbers."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15679 (let* ((level -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15680 (numbers (nreverse (org-split-string "" "\\.")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15681 (depth (1- (length org-section-numbers)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15682 (i depth) number-string)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15683 (while (>= i 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15684 (if (> i level)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15685 (aset org-section-numbers i 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15686 (setq number-string (or (car numbers) "0"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15687 (if (string-match "\\`[A-Z]\\'" number-string)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15688 (aset org-section-numbers i
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15689 (- (string-to-char number-string) ?A -1))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15690 (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
15691 (pop numbers))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15692 (setq i (1- i)))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15693
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15694 (defun org-section-number (&optional level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15695 "Return a string with the current section number.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15696 When LEVEL is non-nil, increase section numbers on that level."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15697 (let* ((depth (1- (length org-section-numbers))) idx n (string ""))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15698 (when level
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15699 (when (> level -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15700 (aset org-section-numbers
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15701 level (1+ (aref org-section-numbers level))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15702 (setq idx (1+ level))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15703 (while (<= idx depth)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15704 (if (not (= idx 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15705 (aset org-section-numbers idx 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15706 (setq idx (1+ idx))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15707 (setq idx 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15708 (while (<= idx depth)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15709 (setq n (aref org-section-numbers idx))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15710 (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
15711 (int-to-string n)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15712 (setq idx (1+ idx)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15713 (save-match-data
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15714 (if (string-match "\\`\\([@0]\\.\\)+" string)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15715 (setq string (replace-match "" t nil string)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15716 (if (string-match "\\(\\.0\\)+\\'" string)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15717 (setq string (replace-match "" t nil string))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15718 string))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15719
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15720
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15721 ;;;###autoload
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15722 (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
15723 "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
15724 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
15725 file, but with extension `.ics'."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15726 (interactive)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
15727 (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
15728
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15729 (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
15730 (with-current-buffer buffer
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15731 (apply 'insert output)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
15732 (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
15733
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15734 (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
15735 "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
15736 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
15737 (interactive (list (current-buffer)))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15738 ;; A quickie abstraction
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15739
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15740 ;; Output everything as XOXO
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15741 (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
15742 (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
15743 (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
15744 (org-infile-export-plist)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15745 (filename (concat (file-name-as-directory
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15746 (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
15747 (file-name-sans-extension
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15748 (file-name-nondirectory buffer-file-name))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15749 ".html"))
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15750 (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
15751 (last-level 1)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15752 (hanging-li nil))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15753 ;; 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
15754 (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
15755 ;; Kick off the output
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15756 (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
15757 (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
15758 (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
15759 (level (length hd))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15760 (text (concat
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15761 (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
15762 (save-excursion
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15763 (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
15764 (let ((str ""))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15765 (catch 'loop
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15766 (while 't
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15767 (forward-line)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15768 (if (looking-at "^[ \t]\\(.*\\)")
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15769 (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
15770 (throw 'loop str)))))))))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15771
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15772 ;; Handle level rendering
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15773 (cond
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15774 ((> level last-level)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15775 (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
15776
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15777 ((< level last-level)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15778 (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
15779 (if hanging-li
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15780 (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
15781 (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
15782 (when hanging-li
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15783 (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
15784 (setq hanging-li nil)))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15785
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15786 ((equal level last-level)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15787 (if hanging-li
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 "</li>\n")))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15789 )
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15790
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15791 (setq last-level level)
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 ;; 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
15794 (setq hanging-li 't)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15795 (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
15796 (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
15797 (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
15798
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15799 ;; 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
15800 (dotimes (- last-level 1)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15801 (if hanging-li
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15802 (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
15803 (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
15804
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15805 ;; 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
15806 (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
15807 (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
15808 (save-buffer)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15809 (goto-char (point-min))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15810 )))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15811
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15812 ;;;###autoload
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15813 (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
15814 "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
15815 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
15816 file, but with extension `.ics'."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15817 (interactive)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15818 (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
15819
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15820 ;;;###autoload
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15821 (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
15822 "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
15823 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
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 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
15826
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15827 (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
15828 "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
15829 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
15830 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
15831 (save-excursion
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15832 (let* ((dir (org-export-directory
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15833 :ical (list :publishing-directory
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15834 org-export-publishing-directory)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15835 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
15836
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15837 (when combine
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15838 (setq ical-file
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15839 (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
15840 org-combined-agenda-icalendar-file
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15841 (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
15842 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
15843 (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
15844 (while (setq file (pop files))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15845 (catch 'nextfile
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15846 (org-check-agenda-file file)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15847 (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
15848 (unless combine
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15849 (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
15850 (file-name-sans-extension
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15851 (file-name-nondirectory buffer-file-name))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15852 ".ics"))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15853 (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
15854 (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
15855 (setq category (or org-category
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15856 (file-name-sans-extension
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
15857 (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
15858 (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
15859 (let ((standard-output ical-buffer))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15860 (if combine
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15861 (and (not started) (setq started t)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15862 (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
15863 (org-start-icalendar-file category))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15864 (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
15865 (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
15866 (org-finish-icalendar-file)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15867 (set-buffer ical-buffer)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15868 (save-buffer)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15869 (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
15870 (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
15871
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15872 (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
15873 "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
15874 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
15875 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
15876 the iCalendar file.")
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15877
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15878 (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
15879 "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
15880 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
15881 (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
15882 (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
15883 (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
15884 "DTSTART"))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
15885 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
15886 (save-excursion
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15887 (goto-char (point-min))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15888 (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
15889 (setq pos (match-beginning 0)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15890 ts (match-string 0)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15891 inc t
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15892 hd (org-get-heading))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15893 (if (looking-at re2)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15894 (progn
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15895 (goto-char (match-end 0))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15896 (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
15897 (setq ts2 ts
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15898 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
15899 (- pos org-ds-keyword-length))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15900 pos)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15901 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
15902 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
15903 ;; donep (org-entry-is-done-p)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
15904 ))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15905 (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
15906 (string-match org-ts-regexp hd))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15907 (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
15908 (if combine
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15909 (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
15910 (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
15911 (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
15912 (princ (format "BEGIN:VEVENT
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15913 %s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15914 %s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15915 SUMMARY:%s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15916 END:VEVENT\n"
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15917 (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
15918 (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
15919 hd)))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15920 (when org-icalendar-include-todo
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15921 (goto-char (point-min))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15922 (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
15923 (setq state (match-string 1))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15924 (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
15925 (setq hd (match-string 3))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15926 (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
15927 (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
15928 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
15929 (substring hd (- (match-end 1)))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15930 (setq pri org-default-priority))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15931 (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
15932 (- org-lowest-priority ?A))))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15933
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15934 (princ (format "BEGIN:VTODO
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15935 %s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15936 SUMMARY:%s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15937 SEQUENCE:1
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15938 PRIORITY:%d
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15939 END:VTODO\n"
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15940 dts hd pri))))))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15941
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15942 (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
15943 "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
15944 (let ((user user-full-name)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15945 (name (or name "unknown"))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
15946 (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
15947 (princ
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15948 (format "BEGIN:VCALENDAR
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15949 VERSION:2.0
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15950 X-WR-CALNAME:%s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15951 PRODID:-//%s//Emacs with Org-mode//EN
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
15952 X-WR-TIMEZONE:%s
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15953 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
15954
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15955 (defun org-finish-icalendar-file ()
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15956 "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
15957 (princ "END:VCALENDAR\n"))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15958
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15959 (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
15960 "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
15961 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
15962 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
15963 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
15964 (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
15965 t2 fmt have-time time)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15966 (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
15967 (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
15968 (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
15969 (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
15970 (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
15971 (when inc
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15972 (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
15973 (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
15974 (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
15975 (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
15976
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15977 ;;; LaTeX stuff
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15978
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15979 (defvar org-cdlatex-mode-map (make-sparse-keymap)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15980 "Keymap for the minor `org-cdlatex-mode'.")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15981
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15982 (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
15983 (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
15984 (define-key org-cdlatex-mode-map "`" 'cdlatex-math-symbol)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15985 (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
15986 (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
15987
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15988 (defvar org-cdlatex-texmathp-advice-is-done nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15989 "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
15990
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
15991 (define-minor-mode org-cdlatex-mode
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15992 "Toggle the minor `org-cdlatex-mode'.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15993 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
15994 in Org-mode.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15995 \\{org-cdlatex-mode-map}"
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
15996 nil " OCDL" nil
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15997 (when org-cdlatex-mode (require 'cdlatex))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15998 (unless org-cdlatex-texmathp-advice-is-done
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15999 (setq org-cdlatex-texmathp-advice-is-done t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16000 (defadvice texmathp (around org-math-always-on activate)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16001 "Always return t in org-mode buffers.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16002 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
16003 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
16004 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
16005 \\[org-cdlatex-mode-map]"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16006 (interactive)
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16007 (let (p)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16008 (cond
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
16009 ((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
16010 ((eq this-command 'cdlatex-math-symbol)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16011 (setq ad-return-value t
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16012 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
16013 (t
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16014 (let ((p (org-inside-LaTeX-fragment-p)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16015 (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
16016 (setq ad-return-value t
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16017 texmathp-why '("Org-mode embedded math" . 0))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16018 (if p ad-do-it)))))))))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16019
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16020 (defun turn-on-org-cdlatex ()
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16021 "Unconditionally turn on `org-cdlatex-mode'."
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16022 (org-cdlatex-mode 1))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16023
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16024 (defun org-inside-LaTeX-fragment-p ()
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16025 "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
16026 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
16027 sequence appearing also before point.
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16028 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
16029 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
16030 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
16031 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
16032 and the position of this delimiter.
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16033
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16034 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
16035 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
16036 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
16037 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
16038 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
16039 looks only before point, not after."
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16040 (catch 'exit
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16041 (let ((pos (point))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16042 (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
16043 (lim (progn
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16044 (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
16045 (point)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16046 dd-on str (start 0) m re)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16047 (goto-char pos)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16048 (when dodollar
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16049 (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
16050 re (nth 1 (assoc "$" org-latex-regexps)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16051 (while (string-match re str start)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16052 (cond
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16053 ((= (match-end 0) (length str))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16054 (throw 'exit (cons "$" (+ lim (match-beginning 0)))))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16055 ((= (match-end 0) (- (length str) 5))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16056 (throw 'exit nil))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16057 (t (setq start (match-end 0))))))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16058 (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
16059 (goto-char pos)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16060 (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
16061 (and (match-beginning 2) (throw 'exit nil))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16062 ;; count $$
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16063 (while (re-search-backward "\\$\\$" lim t)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16064 (setq dd-on (not dd-on)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16065 (goto-char pos)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16066 (if dd-on (cons "$$" m))))))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16067
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16068
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16069 (defun org-try-cdlatex-tab ()
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16070 "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
16071 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
16072 - inside a LaTeX fragment, or
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16073 - 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
16074 insert a LaTeX environment."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16075 (when org-cdlatex-mode
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16076 (cond
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16077 ((save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16078 (skip-chars-backward "a-zA-Z0-9*")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16079 (skip-chars-backward " \t")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16080 (bolp))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16081 (cdlatex-tab) t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16082 ((org-inside-LaTeX-fragment-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16083 (cdlatex-tab) t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16084 (t nil))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16085
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16086 (defun org-cdlatex-underscore-caret (&optional arg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16087 "Execute `cdlatex-sub-superscript' in LaTeX fragments.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16088 Revert to the normal definition outside of these fragments."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16089 (interactive "P")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16090 (if (org-inside-LaTeX-fragment-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16091 (call-interactively 'cdlatex-sub-superscript)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16092 (let (org-cdlatex-mode)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16093 (call-interactively (key-binding (vector last-input-event))))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16094
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16095 (defun org-cdlatex-math-modify (&optional arg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16096 "Execute `cdlatex-math-modify' in LaTeX fragments.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16097 Revert to the normal definition outside of these fragments."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16098 (interactive "P")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16099 (if (org-inside-LaTeX-fragment-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16100 (call-interactively 'cdlatex-math-modify)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16101 (let (org-cdlatex-mode)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16102 (call-interactively (key-binding (vector last-input-event))))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16103
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16104 (defvar org-latex-fragment-image-overlays nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16105 "List of overlays carrying the images of latex fragments.")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16106 (make-variable-buffer-local 'org-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16107
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16108 (defun org-remove-latex-fragment-image-overlays ()
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16109 "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
16110 (mapc 'org-delete-overlay org-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16111 (setq org-latex-fragment-image-overlays nil))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16112
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16113 (defun org-preview-latex-fragment (&optional subtree)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16114 "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
16115 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
16116 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
16117 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
16118 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
16119 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
16120 display all fragments in the buffer.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16121 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
16122 (interactive "P")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16123 (org-remove-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16124 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16125 (save-restriction
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16126 (let (beg end at msg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16127 (cond
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16128 ((or (equal subtree '(16))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16129 (not (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16130 (re-search-backward (concat "^" outline-regexp) nil t))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16131 (setq beg (point-min) end (point-max)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16132 msg "Creating images for buffer...%s"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16133 ((equal subtree '(4))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16134 (org-back-to-heading)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16135 (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
16136 msg "Creating images for subtree...%s"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16137 (t
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16138 (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
16139 (goto-char (max (point-min) (- (cdr at) 2)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16140 (org-back-to-heading))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16141 (setq beg (point) end (progn (outline-next-heading) (point))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16142 msg (if at "Creating image...%s"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16143 "Creating images for entry...%s"))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16144 (message msg "")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16145 (narrow-to-region beg end)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16146 (org-format-latex
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16147 (concat "ltxpng/" (file-name-sans-extension
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16148 (file-name-nondirectory
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16149 buffer-file-name)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16150 default-directory 'overlays msg at)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16151 (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
16152
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16153 (defvar org-latex-regexps
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16154 '(("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
16155 ;; ("$" "\\([ (]\\|^\\)\\(\\(\\([$]\\)\\([^ \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
16156 ;; \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
16157 ("$" "\\([^$]\\)\\(\\(\\$\\([^ \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
16158 ("\\(" "\\\\([^\000]*?\\\\)" 0 nil)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16159 ("\\[" "\\\\\\[[^\000]*?\\\\\\]" 0 t)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16160 ("$$" "\\$\\$[^\000]*?\\$\\$" 0 t))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16161 "Regular expressions for matching embedded LaTeX.")
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16162
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16163 (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
16164 "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
16165 (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
16166 (let* ((prefixnodir (file-name-nondirectory prefix))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16167 (absprefix (expand-file-name prefix dir))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16168 (todir (file-name-directory absprefix))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16169 (opt org-format-latex-options)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16170 (matchers (plist-get opt :matchers))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16171 (re-list org-latex-regexps)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16172 (cnt 0) txt link beg end re e oldfiles
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16173 m n block linkfile movefile ov)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16174 ;; Make sure the directory exists
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16175 (or (file-directory-p todir) (make-directory todir))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16176 ;; 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
16177 (setq oldfiles (directory-files
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16178 todir 'full
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16179 (concat (regexp-quote prefixnodir) "_[0-9]+\\.png$")))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16180 (while oldfiles (delete-file (pop oldfiles)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16181 ;; Check the different regular expressions
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16182 (while (setq e (pop re-list))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16183 (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
16184 block (if (nth 3 e) "\n\n" ""))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16185 (when (member m matchers)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16186 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16187 (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
16188 (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
16189 (setq txt (match-string n)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16190 beg (match-beginning n) end (match-end n)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16191 cnt (1+ cnt)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16192 linkfile (format "%s_%04d.png" prefix cnt)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16193 movefile (format "%s_%04d.png" absprefix cnt)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16194 link (concat block "[[file:" linkfile "]]" block))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16195 (if msg (message msg cnt))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16196 (goto-char beg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16197 (org-create-formula-image
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16198 txt movefile opt)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16199 (if overlays
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16200 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16201 (setq ov (org-make-overlay beg end))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16202 (if (featurep 'xemacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16203 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16204 (org-overlay-put ov 'invisible t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16205 (org-overlay-put
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16206 ov 'end-glyph
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16207 (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
16208 (org-overlay-put
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16209 ov 'display
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16210 (list 'image :type 'png :file movefile :ascent 'center)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16211 (push ov org-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16212 (goto-char end))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16213 (delete-region beg end)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16214 (insert link))))))))
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16215
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16216 ;; This function borrows from Ganesh Swami's latex2png.el
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16217 (defun org-create-formula-image (string tofile options)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16218 (let* ((tmpdir (if (featurep 'xemacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16219 (temp-directory)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16220 temporary-file-directory))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16221 (texfilebase (make-temp-name
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16222 (expand-file-name "orgtex" tmpdir)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16223
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16224 ;(texfilebase (make-temp-file "orgtex"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16225 ; (dummy (delete-file texfilebase))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16226 (texfile (concat texfilebase ".tex"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16227 (dvifile (concat texfilebase ".dvi"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16228 (pngfile (concat texfilebase ".png"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16229 (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
16230 (fg (or (plist-get options :foreground) "Black"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16231 (bg (or (plist-get options :background) "Transparent")))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16232 (with-temp-file texfile
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16233 (insert "\\documentclass{article}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16234 \\usepackage{fullpage}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16235 \\usepackage{amssymb}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16236 \\usepackage[usenames]{color}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16237 \\usepackage{amsmath}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16238 \\usepackage{latexsym}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16239 \\usepackage[mathscr]{eucal}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16240 \\pagestyle{empty}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16241 \\begin{document}\n" string "\n\\end{document}\n"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16242 (let ((dir default-directory))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16243 (condition-case nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16244 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16245 (cd tmpdir)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16246 (call-process "latex" nil nil nil texfile))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16247 (error nil))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16248 (cd dir))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16249 (if (not (file-exists-p dvifile))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16250 (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
16251 (call-process "dvipng" nil nil nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16252 "-E" "-fg" fg "-bg" bg
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16253 "-x" scale "-y" scale "-T" "tight"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16254 "-o" pngfile
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16255 dvifile)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16256 (if (not (file-exists-p pngfile))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16257 (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
16258 ;; Use the requested file name and clean up
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16259 (copy-file pngfile tofile 'replace)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16260 (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
16261 (delete-file (concat texfilebase e)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16262 pngfile))))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
16263
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16264 ;;; Key bindings
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16265
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16266 ;; - Bindings in Org-mode map are currently
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16267 ;; 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
16268 ;; abcd fgh j lmnopqrstuvwxyz!? #$ ^ -+*/= [] ; |,.<>~ '\t necessary bindings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16269 ;; e (?) useful from outline-mode
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16270 ;; 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
16271 ;; 0123456789 % & ()_{} " ` free
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16272
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
16273 ;; 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
16274 (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
16275
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16276 ;; 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
16277 (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
16278 (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
16279 (define-key org-mode-map [(control tab)] 'org-force-cycle-archived)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16280 (define-key org-mode-map [(meta tab)] 'org-complete)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16281 ;; 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
16282 (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
16283 (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
16284 (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
16285
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16286 (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
16287 (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
16288 (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
16289
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16290 ;; 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
16291 (define-key org-mode-map [(meta left)] 'org-metaleft)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16292 (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
16293 (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
16294 (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
16295
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16296 (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
16297 (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
16298 (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
16299 (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
16300
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 (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
16302 (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
16303 (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
16304 (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
16305
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16306 ;; 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
16307 ;; 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
16308
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16309 (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
16310 (not window-system))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16311 (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
16312 (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
16313 (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
16314 (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
16315 (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
16316 (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
16317 (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
16318 (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
16319 (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
16320 (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
16321 (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
16322 (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
16323 (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
16324 (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
16325 (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
16326 (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
16327 (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
16328 (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
16329 (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
16330 (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
16331 (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
16332
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16333 ;; 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
16334
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
16335 (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
16336 (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
16337 (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
16338 (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
16339 (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
16340 (define-key org-mode-map "\C-c\C-j" 'org-goto)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16341 (define-key org-mode-map "\C-c\C-t" 'org-todo)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16342 (define-key org-mode-map "\C-c\C-s" 'org-schedule)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16343 (define-key org-mode-map "\C-c\C-d" 'org-deadline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16344 (define-key org-mode-map "\C-c;" 'org-toggle-comment)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16345 (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
16346 (define-key org-mode-map "\C-c\C-w" 'org-check-deadlines)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16347 (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
16348 (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
16349 (define-key org-mode-map "\C-c\C-m" 'org-insert-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16350 (define-key org-mode-map "\M-\C-m" 'org-insert-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16351 (define-key org-mode-map "\C-c\C-l" 'org-insert-link)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16352 (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
16353 (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
16354 (define-key org-mode-map "\C-c&" 'org-mark-ring-goto)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16355 (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
16356 (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
16357 (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
16358 (define-key org-mode-map "\C-c," 'org-priority) ; Minor-mode reserved
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16359 (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
16360 (define-key org-mode-map "\C-c>" 'org-goto-calendar)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16361 (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
16362 (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
16363 (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
16364 (define-key org-mode-map "\C-c]" 'org-remove-file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16365 (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
16366 (define-key org-mode-map "\C-c^" 'org-table-sort-lines)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16367 (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
16368 (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
16369 (define-key org-mode-map "\C-m" 'org-return)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16370 (define-key org-mode-map "\C-c?" 'org-table-current-column)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16371 (define-key org-mode-map "\C-c " 'org-table-blank-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16372 (define-key org-mode-map "\C-c+" 'org-table-sum)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16373 (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
16374 (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
16375 (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
16376 (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
16377 (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
16378 (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
16379 (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
16380 (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
16381 (define-key org-mode-map "\C-c\C-e" 'org-export)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16382 (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
16383
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
16384 (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
16385 (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
16386 (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
16387 (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
16388
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16389 (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
16390 (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
16391 (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
16392 (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
16393 (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
16394 (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
16395 (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
16396 (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
16397 (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
16398
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16399 (when (featurep 'xemacs)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16400 (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
16401
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16402 (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
16403
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16404 (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
16405 "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
16406 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
16407 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
16408 (interactive "p")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16409 (if (and (org-table-p)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16410 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16411 ;; 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
16412 (and org-table-auto-blank-field
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16413 (member last-command
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16414 '(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
16415 (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
16416 ;; 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
16417 (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
16418 ;; 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
16419 (org-table-blank-field)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16420 t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16421 (eq N 1)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16422 (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
16423 (let (org-table-may-need-update)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16424 (goto-char (1- (match-end 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16425 (delete-backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16426 (goto-char (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16427 (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
16428 (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
16429 (self-insert-command N)))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16430
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16431 (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
16432 "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
16433 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
16434 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
16435 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
16436 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
16437 (interactive "p")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16438 (if (and (org-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16439 (eq N 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16440 (string-match "|" (buffer-substring (point-at-bol) (point)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16441 (looking-at ".*?|"))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16442 (let ((pos (point))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16443 (noalign (looking-at "[^|\n\r]* |"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16444 (c org-table-may-need-update))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16445 (backward-delete-char N)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16446 (skip-chars-forward "^|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16447 (insert " ")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16448 (goto-char (1- pos))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16449 ;; 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
16450 ;; 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
16451 (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
16452 (backward-delete-char N)))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16453
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16454 (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
16455 "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
16456 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
16457 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
16458 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
16459 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
16460 (interactive "p")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16461 (if (and (org-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16462 (not (bolp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16463 (not (= (char-after) ?|))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16464 (eq N 1))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16465 (if (looking-at ".*?|")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16466 (let ((pos (point))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16467 (noalign (looking-at "[^|\n\r]* |"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16468 (c org-table-may-need-update))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16469 (replace-match (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16470 (substring (match-string 0) 1 -1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16471 " |"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16472 (goto-char pos)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16473 ;; 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
16474 ;; 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
16475 (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
16476 (delete-char N))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16477 (delete-char N)))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16478
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16479 ;; 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
16480 (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
16481 (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
16482 (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
16483 (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
16484
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16485 ;; 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
16486 ;; 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
16487
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16488 (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
16489 "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
16490 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
16491 (let (new old)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16492 (while commands
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16493 (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
16494 (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
16495 (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
16496 (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
16497
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16498 (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
16499 ;; 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
16500 ;; 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
16501 (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
16502 '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
16503 '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
16504 '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
16505 (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
16506
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16507 (defun org-shiftcursor-error ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16508 "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
16509 (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
16510
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16511 (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
16512 "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
16513 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
16514 on context.
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16515 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
16516 (interactive "P")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16517 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16518 ((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
16519 (t (call-interactively 'org-global-cycle))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16520
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16521 (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
16522 "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
16523 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
16524 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
16525 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16526 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16527 ((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
16528 ((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
16529 ((org-at-item-p) (call-interactively 'org-outdent-item))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16530 (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
16531
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16532 (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
16533 "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
16534 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
16535 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
16536 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16537 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16538 ((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
16539 ((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
16540 ((org-at-item-p) (call-interactively 'org-indent-item))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16541 (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
16542
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16543 (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
16544 "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
16545 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
16546 `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
16547 for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16548 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16549 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16550 ((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
16551 ((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
16552 ((org-at-item-p) (call-interactively 'org-move-item-up))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16553 (t (org-shiftcursor-error))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16554 (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
16555 "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
16556 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
16557 `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
16558 commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16559 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16560 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16561 ((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
16562 ((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
16563 ((org-at-item-p) (call-interactively 'org-move-item-down))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16564 (t (org-shiftcursor-error))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16565
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16566 (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
16567 "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
16568 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
16569 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
16570 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16571 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16572 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16573 ((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
16574 ((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
16575 (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
16576 ((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
16577 (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
16578
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16579 (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
16580 "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
16581 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
16582 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
16583 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16584 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16585 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16586 ((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
16587 ((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
16588 (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
16589 ((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
16590 (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
16591
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16592 (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
16593 "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
16594 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
16595 `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
16596 for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16597 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16598 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16599 ((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
16600 ((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
16601 ((org-at-item-p) (call-interactively 'org-move-item-up))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16602 (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
16603
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16604 (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
16605 "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
16606 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
16607 `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
16608 commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16609 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16610 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16611 ((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
16612 ((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
16613 ((org-at-item-p) (call-interactively 'org-move-item-down))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16614 (t (org-shiftcursor-error))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16615
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16616 (defun org-shiftup (&optional arg)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16617 "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
16618 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
16619 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16620 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16621 (cond
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
16622 ((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
16623 ((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
16624 ((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
16625 (t (call-interactively 'org-beginning-of-item) (beginning-of-line 1))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16626
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16627 (defun org-shiftdown (&optional arg)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16628 "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
16629 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
16630 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16631 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16632 (cond
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
16633 ((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
16634 ((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
16635 (t (call-interactively 'org-next-item))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16636
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16637 (defun org-shiftright ()
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16638 "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
16639 (interactive)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
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-up-day))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16642 ((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
16643 (t (org-shiftcursor-error))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16644
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16645 (defun org-shiftleft ()
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16646 "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
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-down-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 'left))
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
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16653 (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
16654 "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
16655 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
16656 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
16657 (interactive)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
16658 (call-interactively
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16659 (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
16660
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16661 (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
16662 "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
16663 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
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)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16666 (call-interactively
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-cut-region 'org-cut-subtree)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16668
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16669 (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
16670 "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
16671 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
16672 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16673 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16674 (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
16675 (org-table-paste-rectangle)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16676 (org-paste-subtree arg)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16677
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16678 (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
16679 "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
16680
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16681 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
16682
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16683 - 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
16684 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
16685 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
16686
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16687 - 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
16688 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
16689 information.
69997
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 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
16692 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
16693
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16694 - 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
16695 the entire table.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16696
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16697 - 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
16698 activate that table.
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16699
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16700 - 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
16701 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
16702 location.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16703
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16704 - 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
16705 links in this buffer.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16706
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16707 - 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
16708 ordered list."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16709 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16710 (let ((org-enable-table-editor t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16711 (cond
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16712 ((or org-clock-overlays
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16713 org-occur-highlights
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16714 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
16715 (org-remove-clock-overlays)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16716 (org-remove-occur-highlights)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16717 (org-remove-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16718 (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
16719 ((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
16720 (fboundp org-finish-function))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16721 (funcall org-finish-function))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16722 ((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
16723 ((org-on-heading-p) (call-interactively 'org-set-tags))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16724 ((org-at-table.el-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16725 (require 'table)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16726 (beginning-of-line 1)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16727 (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
16728 (call-interactively 'table-recognize-table))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16729 ((org-at-table-p)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16730 (org-table-maybe-eval-formula)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16731 (if arg
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16732 (call-interactively 'org-table-recalculate)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16733 (org-table-maybe-recalculate-line))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16734 (call-interactively 'org-table-align))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16735 ((org-at-item-checkbox-p)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16736 (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
16737 ((org-at-item-p)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16738 (call-interactively 'org-renumber-ordered-list))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16739 ((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
16740 (cond
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16741 ((equal (match-string 1) "TBLFM")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16742 ;; Recalculate the table before this line
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16743 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16744 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16745 (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
16746 (if (org-at-table-p)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16747 (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
16748 (t
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16749 (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
16750 (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
16751
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16752 (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
16753 "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
16754 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
16755 (interactive)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16756 (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
16757 (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
16758
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16759 (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
16760 "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
16761 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
16762 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
16763 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16764 (cond
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16765 ((org-at-table-p)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16766 (org-table-justify-field-maybe)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16767 (call-interactively 'org-table-next-row))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16768 (t (newline))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16769
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16770 (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
16771 "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
16772 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
16773 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
16774 (interactive "P")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16775 (cond
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16776 ((org-at-table-p)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16777 (call-interactively 'org-table-wrap-region))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16778 (t (call-interactively 'org-insert-heading))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16779
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16780 ;;; Menu entries
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16781
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16782 ;; Define the Org-mode menus
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16783 (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
16784 '("Tbl"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16785 ["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
16786 ["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
16787 ["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
16788 ["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
16789 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16790 ["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
16791 ["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
16792 ["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
16793 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16794 ("Column"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16795 ["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
16796 ["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
16797 ["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
16798 ["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
16799 "--"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16800 ["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
16801 ("Row"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16802 ["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
16803 ["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
16804 ["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
16805 ["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
16806 ["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
16807 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16808 ["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
16809 ("Rectangle"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16810 ["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
16811 ["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
16812 ["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
16813 ["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
16814 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16815 ("Calculate"
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
16816 ["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
16817 ["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
16818 ["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
16819 "--"
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16820 ["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
16821 ["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
16822 ["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
16823 "--"
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
16824 ["Sum Column/Rectangle" org-table-sum
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16825 (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
16826 ["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
16827 ["Debug Formulas"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16828 (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
16829 :style toggle :selected org-table-formula-debug]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16830 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16831 ["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
16832 org-enable-table-editor)]
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16833 ["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
16834 ["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
16835 ["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
16836 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16837 ["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
16838
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16839 (easy-menu-define org-org-menu org-mode-map "Org menu"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16840 '("Org"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16841 ("Show/Hide"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16842 ["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
16843 ["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
16844 ["Sparse Tree" org-occur t]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16845 ["Reveal Context" org-reveal t]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16846 ["Show All" show-all t])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16847 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16848 ["New Heading" org-insert-heading t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16849 ("Navigate Headings"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16850 ["Up" outline-up-heading t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16851 ["Next" outline-next-visible-heading t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16852 ["Previous" outline-previous-visible-heading t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16853 ["Next Same Level" outline-forward-same-level t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16854 ["Previous Same Level" outline-backward-same-level t]
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 ["Jump" org-goto t])
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16857 ("Edit Structure"
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16858 ["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
16859 ["Move Subtree Down" org-shiftmetadown (not (org-at-table-p))]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16860 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16861 ["Copy Subtree" org-copy-special (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16862 ["Cut Subtree" org-cut-special (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16863 ["Paste Subtree" org-paste-special (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16864 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16865 ["Promote Heading" org-metaleft (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16866 ["Promote Subtree" org-shiftmetaleft (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16867 ["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
16868 ["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
16869 "--"
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
16870 ["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
16871 ["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
16872 ("Archive"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16873 ["Toggle ARCHIVE tag" org-toggle-archive-tag t]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16874 ["Check and Tag Children" (org-toggle-archive-tag (4))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16875 :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
16876 ["Sparse trees open ARCHIVE trees"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16877 (setq org-sparse-tree-open-archived-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16878 (not org-sparse-tree-open-archived-trees))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16879 :style toggle :selected org-sparse-tree-open-archived-trees]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16880 ["Cycling opens ARCHIVE trees"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16881 (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
16882 :style toggle :selected org-cycle-open-archived-trees]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16883 ["Agenda includes ARCHIVE trees"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16884 (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
16885 :style toggle :selected (not org-agenda-skip-archived-trees)]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16886 "--"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16887 ["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
16888 ["Check and Move Children" (org-archive-subtree '(4))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16889 :active t :keys "C-u C-c $"])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16890 "--"
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16891 ("TODO Lists"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16892 ["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
16893 ("Select keyword"
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
16894 ["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
16895 ["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
16896 ["Complete Keyword" org-complete (assq :todo-keyword (org-context))])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16897 ["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
16898 ["Global TODO list" org-todo-list t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16899 "--"
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16900 ["Set Priority" org-priority t]
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16901 ["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
16902 ["Priority Down" org-shiftdown t]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16903 "--"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16904 ; ["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
16905 ; ["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
16906 ; ["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
16907 ; (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
16908 ; ["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
16909 ; (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
16910 ; ["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
16911 )
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16912 ("Dates and Scheduling"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16913 ["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
16914 ["Timestamp (inactive)" org-time-stamp-inactive t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16915 ("Change Date"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16916 ["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
16917 ["1 Day Earlier" org-shiftleft t]
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16918 ["1 ... Later" org-shiftup t]
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16919 ["1 ... Earlier" org-shiftdown t])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16920 ["Compute Time Range" org-evaluate-time-range t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16921 ["Schedule Item" org-schedule t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16922 ["Deadline" org-deadline t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16923 "--"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16924 ["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
16925 :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
16926 "--"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16927 ["Goto Calendar" org-goto-calendar t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16928 ["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
16929 ("Logging work"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16930 ["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
16931 ["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
16932 ["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
16933 ["Display times" org-clock-display t]
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
16934 ["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
16935 "--"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16936 ["Record DONE time"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16937 (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
16938 (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
16939 org-done-string
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16940 (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
16941 :style toggle :selected org-log-done])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16942 "--"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16943 ["Agenda Command..." org-agenda t]
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
16944 ("File List for Agenda")
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
16945 ("Special views current file"
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
16946 ["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
16947 ["Check Deadlines" org-check-deadlines t]
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
16948 ["Timeline" org-timeline t]
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
16949 ["Tags Tree" org-tags-sparse-tree t])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16950 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16951 ("Hyperlinks"
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16952 ["Store Link (Global)" org-store-link t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16953 ["Insert Link" org-insert-link t]
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16954 ["Follow Link" org-open-at-point t]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16955 "--"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16956 ["Descriptive Links"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16957 (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
16958 :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
16959 ["Literal Links"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16960 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16961 (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
16962 :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
16963 "--"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16964 ["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
16965 (save-excursion (goto-char (point-min))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16966 (re-search-forward "<[a-z]+:" nil t))])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16967 "--"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16968 ["Export/Publish..." org-export t]
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16969 ("LaTeX"
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16970 ["Org CDLaTeX mode" org-cdlatex-mode :style toggle
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16971 :selected org-cdlatex-mode]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16972 ["Insert Environment" cdlatex-environment (fboundp 'cdlatex-environment)]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16973 ["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
16974 ["Modify math symbol" org-cdlatex-math-modify
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16975 (org-inside-LaTeX-fragment-p)]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16976 ["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
16977 (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
16978 :style toggle :selected org-export-with-LaTeX-fragments])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16979 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16980 ("Documentation"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16981 ["Show Version" org-version t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16982 ["Info Documentation" org-info t])
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16983 ("Customize"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16984 ["Browse Org Group" org-customize t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16985 "--"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16986 ["Expand This Menu" org-create-customize-menu
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16987 (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
16988 "--"
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16989 ["Refresh setup" org-mode-restart t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16990 ))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16991
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16992 (defun org-info (&optional node)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16993 "Read documentation for Org-mode in the info system.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16994 With optional NODE, go directly to that node."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16995 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16996 (require 'info)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16997 (Info-goto-node (format "(org)%s" (or node ""))))
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 (defun org-install-agenda-files-menu ()
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17000 (let ((bl (buffer-list)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17001 (save-excursion
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17002 (while bl
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17003 (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
17004 (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
17005 (when (org-mode-p)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17006 (easy-menu-change
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17007 '("Org") "File List for Agenda"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17008 (append
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17009 (list
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17010 ["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
17011 ["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
17012 ["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
17013 ["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
17014 "--")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17015 (mapcar 'org-file-menu-entry (org-agenda-files t))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17016
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17017 ;;; Documentation
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17018
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17019 (defun org-customize ()
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17020 "Call the customize function with org as argument."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17021 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17022 (customize-browse 'org))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17023
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17024 (defun org-create-customize-menu ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17025 "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
17026 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17027 (if (fboundp 'customize-menu-create)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17028 (progn
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17029 (easy-menu-change
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17030 '("Org") "Customize"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17031 `(["Browse Org group" org-customize t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17032 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17033 ,(customize-menu-create 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17034 ["Set" Custom-set t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17035 ["Save" Custom-save t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17036 ["Reset to Current" Custom-reset-current t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17037 ["Reset to Saved" Custom-reset-saved t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17038 ["Reset to Standard Settings" Custom-reset-standard t]))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17039 (message "\"Org\"-menu now contains full customization menu"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17040 (error "Cannot expand menu (outdated version of cus-edit.el)")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17041
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17042 ;;; Miscellaneous stuff
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17043
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17044 (defun org-context ()
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17045 "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
17046 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
17047 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
17048 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
17049 contexts are:
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17050
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17051 :headline anywhere in a headline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17052 :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
17053 :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
17054 :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
17055 :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
17056 :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
17057 :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
17058 :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
17059 :table in an org-mode table
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17060 :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
17061 :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
17062 :link on a hyperline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17063 :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
17064 :target on a <<target>>
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17065 :radio-target on a <<<radio-target>>>
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17066 :latex-fragment on a LaTeX fragment
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17067 :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
17068
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17069 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
17070 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
17071 and :keyword."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17072 (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
17073 (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
17074 (p (point)) clist o)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17075 ;; First the large context
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17076 (cond
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17077 ((org-on-heading-p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17078 (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
17079 (when (progn
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17080 (beginning-of-line 1)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17081 (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
17082 (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
17083 (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
17084 (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
17085 (goto-char p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17086 (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
17087 (if (looking-at "\\[#[A-Z]\\]")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17088 (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
17089
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17090 ((org-at-item-p)
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17091 (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
17092 (push (list :item (point-at-bol)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17093 (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
17094 clist)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17095 (and (org-at-item-checkbox-p)
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 :checkbox) 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-table-p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17099 (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
17100 (if (memq 'org-formula faces)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17101 (push (list :table-special
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17102 (previous-single-property-change p 'face)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17103 (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
17104 ((org-at-table-p 'any)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17105 (push (list :table-table) clist)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17106 (goto-char p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17107
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17108 ;; Now the small context
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17109 (cond
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17110 ((org-at-timestamp-p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17111 (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
17112 ((memq 'org-link faces)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17113 (push (list :link
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17114 (previous-single-property-change p 'face)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17115 (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
17116 ((memq 'org-special-keyword faces)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17117 (push (list :keyword
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17118 (previous-single-property-change p 'face)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17119 (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
17120 ((org-on-target-p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17121 (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
17122 (goto-char (1- (match-beginning 0)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17123 (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
17124 (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
17125 (goto-char p))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17126 ((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
17127 (mapcar
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17128 (lambda (x)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17129 (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
17130 (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
17131 (push (list :latex-fragment
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17132 (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
17133 (push (list :latex-preview
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17134 (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
17135 ((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
17136 ;; FIXME: positions wrong.
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17137 (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
17138
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17139 (setq clist (nreverse (delq nil clist)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17140 clist))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17141
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17142 (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
17143 "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
17144 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
17145 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
17146 return nil."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17147 (and (match-beginning group)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17148 (>= point (match-beginning group))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17149 (<= point (match-end group))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17150 (if context
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17151 (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
17152 t)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17153
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17154 (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
17155 "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
17156 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17157 (let ((col (current-column))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17158 beg end pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17159 (beginning-of-line 1) (setq beg (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17160 (beginning-of-line 2) (setq end (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17161 (beginning-of-line (+ 1 arg))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17162 (setq pos (move-marker (make-marker) (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17163 (insert (delete-and-extract-region beg end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17164 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17165 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17166
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17167 (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
17168 "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
17169 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17170 (let ((col (current-column))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17171 beg end pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17172 (beginning-of-line 1) (setq beg (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17173 (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
17174 (beginning-of-line (- arg))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17175 (setq pos (move-marker (make-marker) (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17176 (insert (delete-and-extract-region beg end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17177 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17178 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17179
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17180 ;; Paragraph filling stuff.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17181 ;; 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
17182
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17183 (defun org-set-autofill-regexps ()
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17184 (interactive)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17185 ;; 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
17186 ;; 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
17187 ;; 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
17188 (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
17189 (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
17190 ;; 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
17191 (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
17192 "\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
17193 ;; 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
17194 ;; 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
17195 (org-set-local
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17196 'auto-fill-inhibit-regexp
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17197 (concat "\\*\\|#"
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17198 "\\|[ \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
17199 (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
17200 (concat
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17201 "\\|[ \t]*["
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17202 (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
17203 (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
17204 "]"))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17205 ;; 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
17206 ;; 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
17207 ;; 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
17208 (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
17209 ; 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
17210 ;; `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
17211 (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
17212 (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
17213 'org-adaptive-fill-function))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17214
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17215 (defun org-fill-paragraph (&optional justify)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17216 "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
17217 (let ((table-p (org-at-table-p))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17218 (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
17219 (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
17220 (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
17221 (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
17222 (t nil)))) ; call paragraph-fill
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17223
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17224 ;; 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
17225 ;; "[ \t]*\\([-|#;>*]+[ \t]*\\|(?[0-9]+[.)][ \t]*\\)*"
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17226
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17227 (defun org-adaptive-fill-function ()
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17228 "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
17229 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
17230 work correctly."
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
17231 (if (looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?")
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17232 (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
17233
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17234 ;; Functions needed for Emacs/XEmacs region compatibility
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17235
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17236 (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
17237 "Add-hook, compatible with both Emacsen."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17238 (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
17239 (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
17240 (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
17241
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17242 (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
17243 "Is `transient-mark-mode' on and the region active?
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17244 Works on both Emacs and XEmacs."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17245 (if org-ignore-region
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17246 nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17247 (if (featurep 'xemacs)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17248 (and zmacs-regions (region-active-p))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17249 (and transient-mark-mode mark-active))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17250
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17251 (defun org-add-to-invisibility-spec (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17252 "Add elements to `buffer-invisibility-spec'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17253 See documentation for `buffer-invisibility-spec' for the kind of elements
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17254 that can be added."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17255 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17256 ((fboundp 'add-to-invisibility-spec)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17257 (add-to-invisibility-spec arg))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17258 ((or (null buffer-invisibility-spec) (eq buffer-invisibility-spec t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17259 (setq buffer-invisibility-spec (list arg)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17260 (t
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17261 (setq buffer-invisibility-spec
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17262 (cons arg buffer-invisibility-spec)))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17263
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17264 (defun org-remove-from-invisibility-spec (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17265 "Remove elements from `buffer-invisibility-spec'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17266 (if (fboundp 'remove-from-invisibility-spec)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17267 (remove-from-invisibility-spec arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17268 (if (consp buffer-invisibility-spec)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17269 (setq buffer-invisibility-spec
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17270 (delete arg buffer-invisibility-spec)))))
58792
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-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
17273 "Is ARG a member of `buffer-invisibility-spec'?"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17274 (if (consp buffer-invisibility-spec)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17275 (member arg buffer-invisibility-spec)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17276 nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17277
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17278 (defun org-image-file-name-regexp ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17279 "Return regexp matching the file names of images."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17280 (if (fboundp 'image-file-name-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17281 (image-file-name-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17282 (let ((image-file-name-extensions
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17283 '("png" "jpeg" "jpg" "gif" "tiff" "tif"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17284 "xbm" "xpm" "pbm" "pgm" "ppm")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17285 (concat "\\."
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17286 (regexp-opt (nconc (mapcar 'upcase
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17287 image-file-name-extensions)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17288 image-file-name-extensions)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17289 t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17290 "\\'"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17291
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17292 ;; Functions extending outline functionality
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17293
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17294 ;; 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
17295 ;; new outline.el. I guess this should be patched into Emacs?
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17296 (defun org-beginning-of-line ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17297 "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
17298 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
17299 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17300 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17301 (if (bobp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17302 nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17303 (backward-char 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17304 (if (org-invisible-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17305 (while (and (not (bobp)) (org-invisible-p))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17306 (backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17307 (beginning-of-line 1))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17308 (forward-char 1))))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17309
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17310 (define-key org-mode-map "\C-a" 'org-beginning-of-line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17311
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17312 (defun org-invisible-p ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17313 "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
17314 ;; 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
17315 (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
17316 (outline-invisible-p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17317 (get-char-property (point) 'invisible)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17318
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17319 (defun org-invisible-p2 ()
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17320 "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
17321 (save-excursion
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17322 (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
17323 ;; 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
17324 (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
17325 (outline-invisible-p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17326 (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
17327
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17328 (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
17329 (defalias 'org-on-heading-p 'outline-on-heading-p)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17330
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17331 (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
17332 (let ((pos (point)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17333 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17334 (skip-chars-forward "<")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17335 (and (re-search-backward "<<" nil t)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17336 (or (looking-at org-radio-target-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17337 (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
17338 (<= (match-beginning 0) pos)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17339 (>= (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
17340
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17341 (defun org-up-heading-all (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17342 "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
17343 This function considers both visible and invisible heading lines.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17344 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
17345 (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
17346 (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
17347 (outline-up-heading arg t))) ; emacs 22 version of outline.el
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17348
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17349 (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
17350 "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
17351 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
17352 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
17353 move point."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17354 (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
17355 (pos (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17356 (re (concat "^" outline-regexp))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17357 level l)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17358 (org-back-to-heading t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17359 (setq level (funcall outline-level))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17360 (catch 'exit
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17361 (or previous (forward-char 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17362 (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
17363 (setq l (funcall outline-level))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17364 (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
17365 (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
17366 (goto-char pos)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17367 nil)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17368
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17369 (defun org-show-hidden-entry ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17370 "Show an entry where even the heading is hidden."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17371 (save-excursion
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17372 (org-show-entry)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17373
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17374 (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
17375 "Flag the current heading. FLAG non-nil means make invisible.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17376 When ENTRY is non-nil, show the entire entry."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17377 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17378 (org-back-to-heading t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17379 ;; Check if we should show the entire entry
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17380 (if entry
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17381 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17382 (org-show-entry)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
17383 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
17384 (and (outline-next-heading)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
17385 (org-flag-heading nil))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17386 (outline-flag-region (max 1 (1- (point)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17387 (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
17388 flag))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17389
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17390 (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
17391 ;; 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
17392 ;; `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
17393 ;; 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
17394 ;; 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
17395 (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
17396 (let ((first t)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17397 (level (funcall outline-level)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17398 (while (and (not (eobp))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17399 (or first (> (funcall outline-level) level)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17400 (setq first nil)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17401 (outline-next-heading))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17402 (if (memq (preceding-char) '(?\n ?\^M))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17403 (progn
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17404 ;; Go to end of line before heading
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17405 (forward-char -1)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17406 (if (memq (preceding-char) '(?\n ?\^M))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17407 ;; leave blank line before heading
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
17408 (forward-char -1)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
17409 (point))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17410
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17411 (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
17412 "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
17413 (outline-flag-region
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
17414 (point)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17415 (save-excursion
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17416 (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
17417 nil))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17418
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-entry ()
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17420 "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
17421 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
17422 (interactive)
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 (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
17425 (outline-flag-region
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
17426 (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
17427 (save-excursion
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17428 (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
17429 (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
17430 nil)))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17431
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17432 (defun org-make-options-regexp (kwds)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17433 "Make a regular expression for keyword lines."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17434 (concat
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17435 "^"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17436 "#?[ \t]*\\+\\("
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17437 (mapconcat 'regexp-quote kwds "\\|")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17438 "\\):[ \t]*"
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17439 "\\(.+\\)"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17440
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17441 ;; Make `bookmark-jump' show the jump location if it was hidden.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17442 (eval-after-load "bookmark"
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17443 '(if (boundp 'bookmark-after-jump-hook)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17444 ;; We can use the hook
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17445 (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
17446 ;; Hook not available, use advice
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17447 (defadvice bookmark-jump (after org-make-visible activate)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17448 "Make the position visible."
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17449 (org-bookmark-jump-unhide))))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17450
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17451 (defun org-bookmark-jump-unhide ()
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17452 "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
17453 (and (org-mode-p)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17454 (or (org-invisible-p)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17455 (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
17456 (org-invisible-p)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17457 (org-show-context 'bookmark-jump)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17458
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17459 ;; 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
17460 (eval-after-load "session"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17461 '(add-to-list 'session-globals-exclude 'org-mark-ring))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17462
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
17463 ;;; Experimental code
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
17464
68245
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17465 ;;; Finish up
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
17466
68245
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17467 (provide 'org)
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17468
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17469 (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
17470
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17471 ;; 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
17472 ;;; org.el ends here