summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Dominik <carsten.dominik@gmail.com>2008-12-03 08:28:26 +0100
committerCarsten Dominik <carsten.dominik@gmail.com>2008-12-03 08:28:26 +0100
commitb266f5a90cc29a2bf1010c2e472801f941a86ddf (patch)
treee20a959911564a1ab50653fbe91f4443dd029d68
parentaa07f68c1258aff97b6d42fa0da86f3f6c4c8041 (diff)
downloadorg-mode-b266f5a90cc29a2bf1010c2e472801f941a86ddf.tar.gz
Make LOCATION property inheritable for iCalendar export.
Harri Kiiskinen suggested that it might be useful to make the LOCATION property an inherited property during iCalendar export. In this way you can have set the LOCATION for a whole set of items by setting it only in the parent. While this will slow down iCalendar export for large files, I think it can be quite useful. This patch does implement the basic code needed for this functionality. However, you still need to tell Org that LOCATION should be inherited, by setting org-use-property-inheritance. If you set it to t, beware that this may trigger a significant slowdown when creating the match view in the agenda. So it may be better to set this variable to (setq org-use-property-inheritance '("LOCATION")) instead.
-rw-r--r--ORGWEBPAGE/Changes.org10
-rw-r--r--doc/org.texi8
-rwxr-xr-xlisp/ChangeLog2
-rw-r--r--lisp/org-exp.el4
4 files changed, 19 insertions, 5 deletions
diff --git a/ORGWEBPAGE/Changes.org b/ORGWEBPAGE/Changes.org
index b98345a..3f3fa5e 100644
--- a/ORGWEBPAGE/Changes.org
+++ b/ORGWEBPAGE/Changes.org
@@ -110,6 +110,16 @@
| org-export-with-tags | :tags | tags: |
| org-export-with-priority | :priority | pri: |
+*** LOCATION can be inherited for iCalendar export
+
+ The LOCATION property can now be inherited during iCalendar
+ export if you configure =org-use-property-inheritance= like
+ this:
+
+#+begin_src emacs-lisp
+(setq org-use-property-inheritance '("LOCATION"))
+#+end_src
+
* Version 6.13
** Overview
diff --git a/doc/org.texi b/doc/org.texi
index 27eaaf5..e3c010f 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -8017,9 +8017,11 @@ Create a single large iCalendar file from all files in
@code{org-combined-agenda-icalendar-file}.
@end table
-The export will honor SUMMARY, DESCRIPTION and LOCATION properties if
-the selected entries have them. If not, the summary will be derived
-from the headline, and the description from the body (limited to
+The export will honor SUMMARY, DESCRIPTION and LOCATION@footnote{The LOCATION
+property can be inherited from higher in the hierarchy if you configure
+@code{org-use-property-inheritance} accordingly.} properties if the selected
+entries have them. If not, the summary will be derived from the headline,
+and the description from the body (limited to
@code{org-icalendar-include-body} characters).
How this calendar is best read and updated, that depends on the application
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 2a012a8..6323520 100755
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -3,6 +3,8 @@
* org-exp.el (org-export-with-priority): New variable.
(org-export-add-options-to-plist): Use `org-export-plist-vars'
instead of internal list of strings and properties.
+ (org-print-icalendar-entries): Retrieve the location property with
+ inheritance.
2008-12-02 Carsten Dominik <carsten.dominik@gmail.com>
diff --git a/lisp/org-exp.el b/lisp/org-exp.el
index eb07fd5..c45eef2 100644
--- a/lisp/org-exp.el
+++ b/lisp/org-exp.el
@@ -4391,7 +4391,7 @@ When COMBINE is non nil, add the category to each line."
(and org-icalendar-include-body (org-get-entry)))
t org-icalendar-include-body)
location (org-icalendar-cleanup-string
- (org-entry-get nil "LOCATION"))
+ (org-entry-get nil "LOCATION" 'selective))
uid (if org-icalendar-store-UID
(org-id-get-create)
(or (org-id-get) (org-id-new)))
@@ -4513,7 +4513,7 @@ END:VEVENT\n"
(and org-icalendar-include-body (org-get-entry)))
t org-icalendar-include-body)
location (org-icalendar-cleanup-string
- (org-entry-get nil "LOCATION"))
+ (org-entry-get nil "LOCATION" 'selective))
due (and (member 'todo-due org-icalendar-use-deadline)
(org-entry-get nil "DEADLINE"))
start (and (member 'todo-start org-icalendar-use-scheduled)