emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: org-clone-subtree-with-time-shift not asking for time-shift
@ 2017-01-16 11:48 Karl Voit
  2017-01-16 14:50 ` Karl Voit
  2017-01-16 17:56 ` Kyle Meyer
  0 siblings, 2 replies; 10+ messages in thread
From: Karl Voit @ 2017-01-16 11:48 UTC (permalink / raw)
  To: emacs-orgmode

Hi!

I wrote a blog article on how I am using Org with recurring events
or tasks:
http://karl-voit.at/2017/01/15/org-clone-subtree-with-time-shift/

As Michael Maurer stated in a comment below,
org-clone-subtree-with-time-shift does not ask for time-shift
depending on the location of the cursor.

I too had issues with not being asked for a time-shift but I was not
able to determine that this is related to cursor location when
org-clone-subtree-with-time-shift is invoked.

Here are my test cases:

*** [2017-02-28 Mi] no time-shift with cursor after [

*** <2017-02-28 Mi> no time-shift with cursor after <

*** <2017-02-28 Wed> no time-shift with cursor after <

*** <2017-02-28 Wed 09:00-10:00> no time-shift with cursor after <

*** no time-shift with cursor after [
SCHEDULED: <2017-01-16 Mon>
:PROPERTIES:
:CREATED:  [2017-01-16 Mon 12:32]
:END:

*** no time-shift with cursor after <
SCHEDULED: <2017-01-16 Mon>

"no time-shift with cursor after X" means that when the cursor is
placed before the character X, no time-shift is being asked. If the
cursor is on X or after X, the user gets asked to enter a time-shift
as desired.

Following test case works independent of the cursor position:

*** <2017-01-16 Mon> time-shift works
:PROPERTIES:
:CREATED:  [2017-01-16 Mon 12:29]
:END:

I do thing that this is a bug and not a hidden feature.


Org mode version 9.0.1 (release_9.0.1-55-g51efd7)

-- 
get mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML into Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <
Personal Information Management > http://Karl-Voit.at/tags/pim/
Emacs-related > http://Karl-Voit.at/tags/emacs/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Bug: org-clone-subtree-with-time-shift not asking for time-shift
  2017-01-16 11:48 Bug: org-clone-subtree-with-time-shift not asking for time-shift Karl Voit
@ 2017-01-16 14:50 ` Karl Voit
  2017-01-16 17:56 ` Kyle Meyer
  1 sibling, 0 replies; 10+ messages in thread
From: Karl Voit @ 2017-01-16 14:50 UTC (permalink / raw)
  To: emacs-orgmode

* Karl Voit <devnull@Karl-Voit.at> wrote:
>
> As Michael Maurer stated in a comment below,
> org-clone-subtree-with-time-shift does not ask for time-shift
> depending on the location of the cursor.

He is using Org-mode version 8.2.10.

-- 
get mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML into Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <
Personal Information Management > http://Karl-Voit.at/tags/pim/
Emacs-related > http://Karl-Voit.at/tags/emacs/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Bug: org-clone-subtree-with-time-shift not asking for time-shift
  2017-01-16 11:48 Bug: org-clone-subtree-with-time-shift not asking for time-shift Karl Voit
  2017-01-16 14:50 ` Karl Voit
@ 2017-01-16 17:56 ` Kyle Meyer
  2017-01-16 21:31   ` Nicolas Goaziou
  1 sibling, 1 reply; 10+ messages in thread
From: Kyle Meyer @ 2017-01-16 17:56 UTC (permalink / raw)
  To: Karl Voit; +Cc: Karl Voit, emacs-orgmode

Karl Voit <devnull@Karl-Voit.at> writes:

> Hi!
>
> I wrote a blog article on how I am using Org with recurring events
> or tasks:
> http://karl-voit.at/2017/01/15/org-clone-subtree-with-time-shift/
>
> As Michael Maurer stated in a comment below,
> org-clone-subtree-with-time-shift does not ask for time-shift
> depending on the location of the cursor.

I think org-back-to-heading should be called before the timestamp
search:

--8<---------------cut here---------------start------------->8---
Subject: [PATCH] org-clone-subtree-with-time-shift: Fix timestamp search

* lisp/org.el (org-clone-subtree-with-time-shift): Move to the
  beginning of the heading before the timestamp search so that the
  user will be prompted for a time shift even if point is after the
  timestamp.

This also prevents an "Invalid search bound" error if point is on the
blank line following a body-less heading:

   * single line <2017-02-28 Wed>
    <point here>

Reported-by: Karl Voit <devnull@Karl-Voit.at>
<http://permalink.gmane.org/gmane.emacs.orgmode/111456>
---
 lisp/org.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org.el b/lisp/org.el
index 3c27f642a..f0ff80f68 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8976,6 +8976,7 @@ (defun org-clone-subtree-with-time-shift (n &optional shift)
 remove the repeater from a subtree and create a shifted clone
 with the original repeater."
   (interactive "nNumber of clones to produce: ")
+  (org-back-to-heading t)
   (let ((shift
 	 (or shift
 	     (if (and (not (equal current-prefix-arg '(4)))
@@ -9005,7 +9006,6 @@ (defun org-clone-subtree-with-time-shift (n &optional shift)
 				     ("m" . month) ("y" . year))))))
     (when (eq shift-what 'week) (setq shift-n (* 7 shift-n) shift-what 'day))
     (setq nmin 1 nmax n)
-    (org-back-to-heading t)
     (setq beg (point))
     (setq idprop (org-entry-get nil "ID"))
     (org-end-of-subtree t t)
-- 
2.11.0

--8<---------------cut here---------------end--------------->8---

-- 
Kyle

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: Bug: org-clone-subtree-with-time-shift not asking for time-shift
  2017-01-16 17:56 ` Kyle Meyer
@ 2017-01-16 21:31   ` Nicolas Goaziou
  2017-01-16 22:07     ` Bug: org-clone-subtree-with-time-shift not asking for time-shift (FIXED) Karl Voit
  2017-01-16 22:23     ` Bug: org-clone-subtree-with-time-shift not asking for time-shift Kyle Meyer
  0 siblings, 2 replies; 10+ messages in thread
From: Nicolas Goaziou @ 2017-01-16 21:31 UTC (permalink / raw)
  To: Kyle Meyer; +Cc: Karl Voit, Karl Voit, emacs-orgmode

Hello,

Kyle Meyer <kyle@kyleam.com> writes:

> Subject: [PATCH] org-clone-subtree-with-time-shift: Fix timestamp search
>
> * lisp/org.el (org-clone-subtree-with-time-shift): Move to the
>   beginning of the heading before the timestamp search so that the
>   user will be prompted for a time shift even if point is after the
>   timestamp.
>
> This also prevents an "Invalid search bound" error if point is on the
> blank line following a body-less heading:
>
>    * single line <2017-02-28 Wed>
>     <point here>

Thank you. I applied your patch with an additional check.

Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Bug: org-clone-subtree-with-time-shift not asking for time-shift (FIXED)
  2017-01-16 21:31   ` Nicolas Goaziou
@ 2017-01-16 22:07     ` Karl Voit
  2017-01-16 22:23     ` Bug: org-clone-subtree-with-time-shift not asking for time-shift Kyle Meyer
  1 sibling, 0 replies; 10+ messages in thread
From: Karl Voit @ 2017-01-16 22:07 UTC (permalink / raw)
  To: emacs-orgmode

Hello,

* Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
>
> Kyle Meyer <kyle@kyleam.com> writes:
>
>> Subject: [PATCH] org-clone-subtree-with-time-shift: Fix timestamp search
>
> Thank you. I applied your patch with an additional check.

I pulled the fix from "maint" and I re-tested my test cases: issue
is fixed at my side.

Thanks Kyle and Nicolas - another example of true awesomeness of
this community!

-- 
get mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML into Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <
Personal Information Management > http://Karl-Voit.at/tags/pim/
Emacs-related > http://Karl-Voit.at/tags/emacs/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Bug: org-clone-subtree-with-time-shift not asking for time-shift
  2017-01-16 21:31   ` Nicolas Goaziou
  2017-01-16 22:07     ` Bug: org-clone-subtree-with-time-shift not asking for time-shift (FIXED) Karl Voit
@ 2017-01-16 22:23     ` Kyle Meyer
  2017-01-16 22:30       ` Karl Voit
  1 sibling, 1 reply; 10+ messages in thread
From: Kyle Meyer @ 2017-01-16 22:23 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: Karl Voit, Karl Voit, emacs-orgmode

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Thank you. I applied your patch with an additional check.

Thanks.  The additional check looks good, as it replaces an error with a
more appropriate user-error and gives an error message that is a bit
more specific.

However, the re-positioning of the org-back-to-heading call seems
problematic because the call is now wrapped in a save-excursion, but the
downstream code expects point to be at the beginning of the heading.

When I call org-clone-subtree-with-time-shift with point at the end of

    *** heading <2017-02-28 Wed>

I get the following error:

    Debugger entered--Lisp error: (error "Before first headline at position 1 in buffer  *temp*")
      signal(error ("Before first headline at position 1 in buffer  *temp*"))
      error("Before first headline at position %d in buffer %s" 1 #<buffer  *temp*>)
      (condition-case nil (outline-back-to-heading invisible-ok) (error (error "Before first headline at position %d in buffer %s" (point) (current-buffer))))
      org-back-to-heading(t)
      org-end-of-subtree(t t)
      (save-excursion (org-end-of-subtree t t))
      (outline-flag-region (point) (save-excursion (org-end-of-subtree t t)) nil)
      org-show-subtree()
      [...]
      org-clone-subtree-with-time-shift(2)
      funcall-interactively(org-clone-subtree-with-time-shift 2)
      call-interactively(org-clone-subtree-with-time-shift nil nil)
      command-execute(org-clone-subtree-with-time-shift)

I think this is because beg isn't set to the beginning of the heading.

But given Karl's recent email saying that the changes in maint fixed his
test cases, maybe I'm missing something ...

--
Kyle

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Bug: org-clone-subtree-with-time-shift not asking for time-shift
  2017-01-16 22:23     ` Bug: org-clone-subtree-with-time-shift not asking for time-shift Kyle Meyer
@ 2017-01-16 22:30       ` Karl Voit
  2017-01-17  8:54         ` Nicolas Goaziou
  0 siblings, 1 reply; 10+ messages in thread
From: Karl Voit @ 2017-01-16 22:30 UTC (permalink / raw)
  To: emacs-orgmode

* Kyle Meyer <kyle@kyleam.com> wrote:
>
> Thanks.  The additional check looks good, as it replaces an error with a
> more appropriate user-error and gives an error message that is a bit
> more specific.
>
> However, the re-positioning of the org-back-to-heading call seems
> problematic because the call is now wrapped in a save-excursion, but the
> downstream code expects point to be at the beginning of the heading.
>
> When I call org-clone-subtree-with-time-shift with point at the end of
>
>     *** heading <2017-02-28 Wed>
> I get the following error:
>     Debugger entered--Lisp error: (error "Before first headline at position 1 in buffer  *temp*")
[...]
> I think this is because beg isn't set to the beginning of the heading.
>
> But given Karl's recent email saying that the changes in maint fixed his
> test cases, maybe I'm missing something ...

I have to excuse myself: I tested not good enough: I only tested my
cases for being asked for the time-shift and not finished executing
the cases.

You're right, I can confirm your issue. I get "Before first headline
at position 1 in buffer  *temp*" as well.

-- 
get mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML into Org-mode:
       > get Memacs from https://github.com/novoid/Memacs <
Personal Information Management > http://Karl-Voit.at/tags/pim/
Emacs-related > http://Karl-Voit.at/tags/emacs/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Bug: org-clone-subtree-with-time-shift not asking for time-shift
  2017-01-16 22:30       ` Karl Voit
@ 2017-01-17  8:54         ` Nicolas Goaziou
  2017-01-18  2:42           ` Kyle Meyer
  0 siblings, 1 reply; 10+ messages in thread
From: Nicolas Goaziou @ 2017-01-17  8:54 UTC (permalink / raw)
  To: Karl Voit; +Cc: Karl Voit, emacs-orgmode

Hello,

Karl Voit <devnull@Karl-Voit.at> writes:

> * Kyle Meyer <kyle@kyleam.com> wrote:
>>
>> Thanks.  The additional check looks good, as it replaces an error with a
>> more appropriate user-error and gives an error message that is a bit
>> more specific.
>>
>> However, the re-positioning of the org-back-to-heading call seems
>> problematic because the call is now wrapped in a save-excursion, but the
>> downstream code expects point to be at the beginning of the heading.
>>
>> When I call org-clone-subtree-with-time-shift with point at the end of
>>
>>     *** heading <2017-02-28 Wed>
>> I get the following error:
>>     Debugger entered--Lisp error: (error "Before first headline at position 1 in buffer  *temp*")
> [...]
>> I think this is because beg isn't set to the beginning of the heading.
>>
>> But given Karl's recent email saying that the changes in maint fixed his
>> test cases, maybe I'm missing something ...
>
> I have to excuse myself: I tested not good enough: I only tested my
> cases for being asked for the time-shift and not finished executing
> the cases.
>
> You're right, I can confirm your issue. I get "Before first headline
> at position 1 in buffer  *temp*" as well.

Fixed (hopefully) this time.

Thank you.

Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Bug: org-clone-subtree-with-time-shift not asking for time-shift
  2017-01-17  8:54         ` Nicolas Goaziou
@ 2017-01-18  2:42           ` Kyle Meyer
  2017-01-18 11:11             ` Nicolas Goaziou
  0 siblings, 1 reply; 10+ messages in thread
From: Kyle Meyer @ 2017-01-18  2:42 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: Karl Voit, Karl Voit, emacs-orgmode

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Karl Voit <devnull@Karl-Voit.at> writes:

[...]

>> You're right, I can confirm your issue. I get "Before first headline
>> at position 1 in buffer  *temp*" as well.
>
> Fixed (hopefully) this time.

Yes, c31462f33 resolved the issue.  That commit also introduced a
regression: a blank string passed as the SHIFT argument causes an error.
I've followed up with 1fbc7a424 to restore the previous behavior.

Thanks.

--
Kyle

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Bug: org-clone-subtree-with-time-shift not asking for time-shift
  2017-01-18  2:42           ` Kyle Meyer
@ 2017-01-18 11:11             ` Nicolas Goaziou
  0 siblings, 0 replies; 10+ messages in thread
From: Nicolas Goaziou @ 2017-01-18 11:11 UTC (permalink / raw)
  To: Kyle Meyer; +Cc: Karl Voit, Karl Voit, emacs-orgmode

Hello,

Kyle Meyer <kyle@kyleam.com> writes:

> Yes, c31462f33 resolved the issue.  That commit also introduced a
> regression: a blank string passed as the SHIFT argument causes an error.
> I've followed up with 1fbc7a424 to restore the previous behavior.

Indeed. Thank you.

Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2017-01-18 11:11 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-16 11:48 Bug: org-clone-subtree-with-time-shift not asking for time-shift Karl Voit
2017-01-16 14:50 ` Karl Voit
2017-01-16 17:56 ` Kyle Meyer
2017-01-16 21:31   ` Nicolas Goaziou
2017-01-16 22:07     ` Bug: org-clone-subtree-with-time-shift not asking for time-shift (FIXED) Karl Voit
2017-01-16 22:23     ` Bug: org-clone-subtree-with-time-shift not asking for time-shift Kyle Meyer
2017-01-16 22:30       ` Karl Voit
2017-01-17  8:54         ` Nicolas Goaziou
2017-01-18  2:42           ` Kyle Meyer
2017-01-18 11:11             ` Nicolas Goaziou

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).