Re: [O] Bug: org-capture-templates with %^t

2017-10-06 Thread Nicolas Goaziou
Hello,

Matt Lundin  writes:

> Attached please find a patch that fixes these issues. It is a simple
> change, but it brings the behavior of %^t and %^u vs. %^T and %^U into
> line with the behavior of the interactive function org-time-stamp
> without and with a prefix argument.
>
> The escapes %^t and %^u now default to no time of day if the user enters
> nothing but allow the optional entry of a time of day via user
> interaction.
>
> The escapes %^T and %^U always include a time of day, with or without
> user interaction.

Applied. Thank you.

Regards,

-- 
Nicolas Goaziou



Re: [O] Bug: org-capture-templates with %^t

2017-10-06 Thread Matt Lundin
Matt Lundin  writes:

> Matt Lundin  writes:
>
>> After commit 51b431d01365211d4c40b07729d5d11d82b9dfe2,
>> org-capture-templates containing %^t do not work as expected.
>>
>> With this capture template, I am prompted to enter a time via
>> org-read-date. The expected behavior is as follows:
>>
>>  - if I enter a date and time of day, the resulting timestamp should 
>>contain the time of day:
>>  - i.e., entering "Thu 8am" should yield "<2017-10-05 Thu 08:00>"
>>
>> What happens now:
>>
>>  - when I enter a date with a time of day, the timestamp is truncated
>>and contains only a date
>>  - I.e., entering "Thu 8am" now yields "<2017-10-05 Thu>"
>>
>
> There is a further bug here. With the capture template above, if I enter
> a time range - i.e., an end time - the timestamp in the capture buffer
> is incorrect.
>
> Entering... "Thu 8am-10am" yields...
>
>  <2017-10-05 Thu-10:00>
>

Attached please find a patch that fixes these issues. It is a simple
change, but it brings the behavior of %^t and %^u vs. %^T and %^U into
line with the behavior of the interactive function org-time-stamp
without and with a prefix argument.

The escapes %^t and %^u now default to no time of day if the user enters
nothing but allow the optional entry of a time of day via user
interaction.

The escapes %^T and %^U always include a time of day, with or without
user interaction.

Best,
Matt

>From b3e9fc879c8cadd8b634d7f4f3512ba1eaf1b8bf Mon Sep 17 00:00:00 2001
From: Matt Lundin 
Date: Fri, 6 Oct 2017 09:50:05 -0500
Subject: [PATCH] Fix interactive timestamp entry in capture templates

* lisp/org-capture.el: (org-capture-fill-template) Fix interactive
  timestamp entry to match the behavior of org-time-stamp. This fixes
  a bug related to the %^t and %^u template escapes which resulted in
  incorrect timestamps (<2017-10-06 Fri-12:00>). The difference
  between %^t and %^T now corresponds to the difference between
  org-time-stamp called without and with a prefix argument.
---
 lisp/org-capture.el | 9 -
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index 862cdb276..25af674b8 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -1792,11 +1792,10 @@ The template may still contain \"%?\" for cursor positioning."
 		 (let* ((upcase? (equal (upcase key) key))
 			(org-end-time-was-given nil)
 			(time (org-read-date upcase? t nil prompt)))
-		   (let ((org-time-was-given upcase?))
-			 (org-insert-time-stamp
-			  time org-time-was-given
-			  (member key '("u" "U"))
-			  nil nil (list org-end-time-was-given)
+		   (org-insert-time-stamp
+			time (or org-time-was-given upcase?)
+			(member key '("u" "U"))
+			nil nil (list org-end-time-was-given
 		(`nil
 		 (push (org-completing-read
 			(concat (or prompt "Enter string")
-- 
2.14.2



Re: [O] Bug: org-capture-templates with %^t

2017-10-05 Thread Matt Lundin
Matt Lundin  writes:

> After commit 51b431d01365211d4c40b07729d5d11d82b9dfe2,
> org-capture-templates containing %^t do not work as expected.
>
> The relevant capture template snippet looks like this:
>
> (setq org-capture-templates
>   '(("a" "Appointment" entry (file "~/inbox.org") "* %^{Appt}\n %^t%?\n 
> %U\n
> %a\n\n %i")))
>
> With this capture template, I am prompted to enter a time via
> org-read-date. The expected behavior is as follows:
>
>  - if I enter a date and time of day, the resulting timestamp should 
>contain the time of day:
>  - i.e., entering "Thu 8am" should yield "<2017-10-05 Thu 08:00>"
>
> What happens now:
>
>  - when I enter a date with a time of day, the timestamp is truncated
>and contains only a date
>  - I.e., entering "Thu 8am" now yields "<2017-10-05 Thu>"
>

There is a further bug here. With the capture template above, if I enter
a time range - i.e., an end time - the timestamp in the capture buffer
is incorrect.

Entering... "Thu 8am-10am" yields...

 <2017-10-05 Thu-10:00>

Best,
Matt




[O] Bug: org-capture-templates with %^t

2017-10-03 Thread Matt Lundin
After commit 51b431d01365211d4c40b07729d5d11d82b9dfe2,
org-capture-templates containing %^t do not work as expected.

The relevant capture template snippet looks like this:

(setq org-capture-templates
  '(("a" "Appointment" entry (file "~/inbox.org") "* %^{Appt}\n %^t%?\n %U\n
%a\n\n %i")))

With this capture template, I am prompted to enter a time via
org-read-date. The expected behavior is as follows:

 - if I enter a date and time of day, the resulting timestamp should 
   contain the time of day:
 - i.e., entering "Thu 8am" should yield "<2017-10-05 Thu 08:00>"
 - if I enter only a date, the resulting timestamp should contain a date
   with no time of day
 - if I enter nothing at the prompt, the resulting timestamp should
   contain today's date with no time of day

What happens now:

 - when I enter a date with a time of day, the timestamp is truncated
   and contains only a date
 - I.e., entering "Thu 8am" now yields "<2017-10-05 Thu>"

This, I think, is counter to the intent of the difference between %^t
and %^T. The lowercase and uppercase (time of day vs. no time of day)
should apply only to the default entry when nothing is entered. But when
the user enters information at the prompt, the behavior should be the
same as that of org-time-stamp, allowing a flexible decision on the fly
as to whether to enter a time of day.

Best,
Matt