From mboxrd@z Thu Jan  1 00:00:00 1970
From: Viktor Rosenfeld <listuser36@gmail.com>
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: <emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org>
Received: from eggs.gnu.org ([2001:4830:134:3::10]:59083)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <listuser36@gmail.com>) 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 <listuser36@gmail.com>) 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 <listuser36@gmail.com>) 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 <emacs-orgmode@gnu.org>; 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 <emacs-orgmode@gnu.org>
	(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." <emacs-orgmode.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/emacs-orgmode>,
	<mailto:emacs-orgmode-request@gnu.org?subject=unsubscribe>
List-Archive: <http://lists.gnu.org/archive/html/emacs-orgmode>
List-Post: <mailto:emacs-orgmode@gnu.org>
List-Help: <mailto:emacs-orgmode-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/emacs-orgmode>,
	<mailto:emacs-orgmode-request@gnu.org?subject=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 <listuser36@gmail.com>
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--