From mboxrd@z Thu Jan 1 00:00:00 1970 From: Viktor Rosenfeld Subject: Re: [PATCH] ox-icalendar: fix handling of timestamps Date: Sun, 11 Aug 2013 14:53:54 +0200 Message-ID: <20130811125354.GB69042@kenny.local> References: <20130811020358.GA30350@kenny.local> <87ob95dlel.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="6c2NcOVqGQ03X4Wi" Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59083) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V8V9s-0007Vq-Kv for emacs-orgmode@gnu.org; Sun, 11 Aug 2013 08:54:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V8V9k-0004KI-7R for emacs-orgmode@gnu.org; Sun, 11 Aug 2013 08:54:08 -0400 Received: from mail-ea0-x236.google.com ([2a00:1450:4013:c01::236]:50683) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V8V9k-0004J0-0p for emacs-orgmode@gnu.org; Sun, 11 Aug 2013 08:54:00 -0400 Received: by mail-ea0-f182.google.com with SMTP id o10so2912285eaj.41 for ; Sun, 11 Aug 2013 05:53:59 -0700 (PDT) Received: from kenny.local (e179175132.adsl.alicedsl.de. [85.179.175.132]) by mx.google.com with ESMTPSA id a4sm48055003eez.0.2013.08.11.05.53.57 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 11 Aug 2013 05:53:58 -0700 (PDT) Content-Disposition: inline In-Reply-To: <87ob95dlel.fsf@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --6c2NcOVqGQ03X4Wi Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Hi Aaron, Aaron Ecay wrote: > > (lambda (ts) > > - (let ((uid (format "TS%d-%s" (incf counter) uid))) > > - (org-icalendar--vevent entry ts uid summary loc desc cat))) > > + (let ((type (org-element-property :type ts)) > > + (uid (format "TS%d-%s" (incf counter) uid))) > > + (when (or (eq with-timestamps 'all) > > Here, I think you want to compare with t, not 'all (check the defcustom > for ‘org-icalendar-with-timestamps’). Thanks, fixed! > > > + (and (eq with-timestamps 'active) > > + (or (eq type 'active) > > + (eq type 'active-range))) > > This is only a cosmetic comment, so feel free to disregard it, but: > might the ‘(or ...)’ be cleaner as ‘(memq type '(active active-range))’? Thanks, fixed! I did not like the construction with `or' but I didn't know about `memq'. Learning Elisp as I go... New patch is attached. Cheers, Viktor > > -- > Aaron Ecay > --6c2NcOVqGQ03X4Wi Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-ox-icalendar-fix-handling-of-timestamps.patch" >From 52511b5e2a538d3bb0375c2e32caef0a27e1998e Mon Sep 17 00:00:00 2001 From: Viktor Rosenfeld Date: Sun, 11 Aug 2013 03:59:29 +0200 Subject: [PATCH] ox-icalendar: fix handling of timestamps * ox-icalendar.el (org-icalendar-entry): Honor setting of `org-icalendar-with-timestamps' for timestamps on headlines and checkboxes. The setting `org-icalendar-with-timestamps' was only applied to timestamps which do not appear on a heading or on a checkbox. E.g., with `org-icalendar-with-timestamps' set to 'active, an heading containing an inactive timestamp on would be exported. This patch fixes this. TINYCHANGE --- lisp/ox-icalendar.el | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lisp/ox-icalendar.el b/lisp/ox-icalendar.el index c6ab295..ab83a48 100644 --- a/lisp/ox-icalendar.el +++ b/lisp/ox-icalendar.el @@ -580,15 +580,22 @@ inlinetask within the section." ;; When collecting plain timestamps from a headline and ;; its title, skip inlinetasks since collection will ;; happen once ENTRY is one of them. - (let ((counter 0)) + (let ((counter 0) + (with-timestamps (plist-get info :with-timestamps))) (mapconcat 'identity (org-element-map (cons (org-element-property :title entry) (org-element-contents inside)) 'timestamp (lambda (ts) - (let ((uid (format "TS%d-%s" (incf counter) uid))) - (org-icalendar--vevent entry ts uid summary loc desc cat))) + (let ((type (org-element-property :type ts)) + (uid (format "TS%d-%s" (incf counter) uid))) + (when (or (eq with-timestamps t) + (and (eq with-timestamps 'active) + (memq type '(active active-range))) + (and (eq with-timestamps 'inactive) + (memq type '(inactive 'inactive-range)))) + (org-icalendar--vevent entry ts uid summary loc desc cat)))) info nil (and (eq type 'headline) 'inlinetask)) "")) ;; Task: First check if it is appropriate to export it. -- 1.8.3.4 --6c2NcOVqGQ03X4Wi--