emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] [Accepted] Fix marker in no buffer error for task state change in an


From: Bastien Guerry
Subject: [O] [Accepted] Fix marker in no buffer error for task state change in an indirect buffer
Date: Sun, 11 Dec 2011 18:23:13 +0100 (CET)

Patch 1050 (http://patchwork.newartisans.com/patch/1050/) is now "Accepted".

Maintainer comment: none

This relates to the following submission:

http://mid.gmane.org/%3C1321739047-11936-1-git-send-email-bernt%40norang.ca%3E

Here is the original message containing the patch:

> Content-Type: text/plain; charset="utf-8"
> MIME-Version: 1.0
> Content-Transfer-Encoding: 7bit
> Subject: [O] Fix marker in no buffer error for task state change in an
>       indirect buffer
> Date: Sun, 20 Nov 2011 02:44:07 -0000
> From: Bernt Hansen <address@hidden>
> X-Patchwork-Id: 1050
> Message-Id: <address@hidden>
> To: address@hidden
> Cc: Bernt Hansen <address@hidden>, address@hidden
> 
> * lisp/org-clock.el (org-clock-out-if-current): Fix marker in no buffer error
>   for task state change in an indirect buffer
> 
> org-clock-out-when-current was enhanced in 098cf35 (Clock: Clock out
> when done also in indirect buffers, 2009-03-23) to handle indirect
> buffers.
> 
> This enhancement uses (buffer-base-buffer (org-clocking-buffer)) but
> when not clocking (org-clocking-buffer) returns nil - so
> buffer-base-buffer returns the base buffer of the current buffer which
> is never nil.  This leads to marker in no buffer errors trying to stop
> the clock when it is not running.
> 
> Now we explicitly check up front that the clock is running before
> any other conditions that lead to stopping the clock.
> 
> ---
> cc:ing Carsten since this is his code
> 
> Hi Dave,
> 
> After much difficulty I was able to reproduce this problem.  It would
> have been helpful to include basic information about what triggers the
> bug for you.
> 
>   - clock is not running
>   - You are working in an indirect buffer
>   - You change a todo state keyword to DONE
> 
> This works fine for me when not in an indirect buffer.
> 
> The git commit you have referenced in this report is not part of the org
> repository which also made me think you had local changes that affected
> this issue since I couldn't reproduce it for the first 20 minutes of
> looking at this issue.
> 
> Please try this patch and report back if it works or not.
> 
> Thanks,
> Bernt
> 
> 
>  lisp/org-clock.el |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/lisp/org-clock.el b/lisp/org-clock.el
> index 5dbe4dc..9107400 100644
> --- a/lisp/org-clock.el
> +++ b/lisp/org-clock.el
> @@ -1696,7 +1696,8 @@ from the `before-change-functions' in the current 
> buffer."
>    "Clock out if the current entry contains the running clock.
>  This is used to stop the clock after a TODO entry is marked DONE,
>  and is only done if the variable `org-clock-out-when-done' is not nil."
> -  (when (and org-clock-out-when-done
> +  (when (and (org-clocking-p)
> +          org-clock-out-when-done
>            (or (and (eq t org-clock-out-when-done)
>                     (member state org-done-keywords))
>                (and (listp org-clock-out-when-done)
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]