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 <be...@norang.ca> > X-Patchwork-Id: 1050 > Message-Id: <1321739047-11936-1-git-send-email-be...@norang.ca> > To: emacs-orgmode@gnu.org > Cc: Bernt Hansen <be...@norang.ca>, carsten.domi...@gmail.com > > * 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) >