emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [PATCH] Fix capture to make it save the point location
@ 2014-05-02  2:00 Alex Kosorukoff
  2014-05-02  2:03 ` Alex Kosorukoff
  0 siblings, 1 reply; 7+ messages in thread
From: Alex Kosorukoff @ 2014-05-02  2:00 UTC (permalink / raw)
  To: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 351 bytes --]

Hello:

this is another small patch to org-capture.el to make sure that after
completion it returns to the same place from where it was invoked. This way
users won't loose track of where they were before capturing something. The
minimal setup to reproduce the case where capture fails to return to the
place of its invocation is attached.

Best,
Alex

[-- Attachment #1.2: Type: text/html, Size: 457 bytes --]

[-- Attachment #2: 0001-fix-org-capture-error-The-mark-is-not-set-now-so-the.patch --]
[-- Type: text/x-patch, Size: 959 bytes --]

From ac50a5300e35d7abd5f50317069b2a795fde4ad8 Mon Sep 17 00:00:00 2001
From: Alex Kosorukoff <alex@3form.com>
Date: Mon, 17 Mar 2014 12:56:09 -0700
Subject: [PATCH] fix org-capture error "The mark is not set now, so there is no region"

---
 lisp/org.el |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index dc4f2cc..bc5a69e 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -14611,7 +14611,7 @@ When JUST-ALIGN is non-nil, only align tags.
 When JUST-ALIGN is 'ignore-column, align tags without trying to set
 the column by ignoring invisible text."
   (interactive "P")
-  (if (and (org-region-active-p) org-loop-over-headlines-in-active-region)
+  (if (and (mark t) (org-region-active-p) org-loop-over-headlines-in-active-region)
       (let ((cl (if (eq org-loop-over-headlines-in-active-region 'start-level)
 		    'region-start-level 'region))
 	    org-loop-over-headlines-in-active-region)
-- 
1.7.0.4


[-- Attachment #3: capmove.el --]
[-- Type: text/x-emacs-lisp, Size: 1137 bytes --]

;; capmove.el org-mode capture moving the point in a buffer
;; $ emacs -Q -l capfail.el

(unless window-system
  (insert "This test needs window-system, exiting...")
  (sleep-for 3)
  (kill-emacs))

(setq inhibit-splash-screen t)
(add-to-list 'load-path "~/.emacs.d/org/lisp")
(require 'org)
(setq org-capture-templates
      '(("t" "Todo" entry (file "todo.org") "* TODO %^{Title}\n  %?")))
(define-key global-map (kbd "C-c c") 'org-capture)

(switch-to-buffer "test.org")
(insert "we start here and do some editing\n") (goto-char 0)
(select-frame (make-frame))
(goto-char (point-max))
(dotimes (n 5)
    (insert (format "%d\n" n))
    (sit-for 1))
(insert "now we invoke capture here")
(sit-for 1)

(setq last-kbd-macro [?\C-c ?c ?t ?t ?e ?s ?t return return])
(sleep-for 3) (kmacro-call-macro nil)
(insert "note that capture had already moved the point\n")
(insert "to the top of the file in this buffer\n\n")
(sit-for 3)
(insert "so we end up in a different place when we finish\n")
(insert "even if we abort it with C-c C-k")
(sit-for 3)
(setq last-kbd-macro [?\C-c ?\C-k])
(sleep-for 3) (kmacro-call-macro nil)
(provide 'capmove)


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

* Re: [PATCH] Fix capture to make it save the point location
  2014-05-02  2:00 [PATCH] Fix capture to make it save the point location Alex Kosorukoff
@ 2014-05-02  2:03 ` Alex Kosorukoff
  2014-05-23 12:30   ` Bastien
  0 siblings, 1 reply; 7+ messages in thread
From: Alex Kosorukoff @ 2014-05-02  2:03 UTC (permalink / raw)
  To: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 527 bytes --]

sorry, I accidentally sent my previous patch. This is the one that belongs
here.


On Thu, May 1, 2014 at 7:00 PM, Alex Kosorukoff <alex@3form.com> wrote:

> Hello:
>
> this is another small patch to org-capture.el to make sure that after
> completion it returns to the same place from where it was invoked. This way
> users won't loose track of where they were before capturing something. The
> minimal setup to reproduce the case where capture fails to return to the
> place of its invocation is attached.
>
> Best,
> Alex
>

[-- Attachment #1.2: Type: text/html, Size: 893 bytes --]

[-- Attachment #2: 0001-org-capture-fix-org-capture-to-make-it-save-the-poin.patch --]
[-- Type: text/x-patch, Size: 1106 bytes --]

From cf97dd81aa94510e5dcd5be478b515c732cd93d4 Mon Sep 17 00:00:00 2001
From: Alex Kosorukoff <alex@3form.com>
Date: Thu, 1 May 2014 18:50:43 -0700
Subject: [PATCH] org-capture: fix org-capture to make it save the point position

* lisp/org-capture.el (org-capture-fill template) can change the point
  position in the buffer where capture was invoked, so user may not return
  to the same place after capture completion
---
 lisp/org-capture.el |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index c053640..1e3ae5b 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -584,7 +584,9 @@ of the day at point (if any) or the current HH:MM time."
 			     (org-current-time)))
 	(org-capture-set-target-location)
 	(condition-case error
-	    (org-capture-put :template (org-capture-fill-template))
+	    (org-capture-put :template
+			     (save-excursion
+			       (org-capture-fill-template)))
 	  ((error quit)
 	   (if (get-buffer "*Capture*") (kill-buffer "*Capture*"))
 	   (error "Capture abort: %s" error)))
-- 
1.7.0.4


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

* Re: [PATCH] Fix capture to make it save the point location
  2014-05-02  2:03 ` Alex Kosorukoff
@ 2014-05-23 12:30   ` Bastien
  2014-05-23 15:24     ` Alex Kosorukoff
  0 siblings, 1 reply; 7+ messages in thread
From: Bastien @ 2014-05-23 12:30 UTC (permalink / raw)
  To: Alex Kosorukoff; +Cc: emacs-orgmode

Hi Alex,

Alex Kosorukoff <alex@3form.com> writes:

> sorry, I accidentally sent my previous patch. This is the one that
> belongs here.

See my other reply for this bug and let me know if it's fixed.

Thanks,

-- 
 Bastien

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

* Re: [PATCH] Fix capture to make it save the point location
  2014-05-23 12:30   ` Bastien
@ 2014-05-23 15:24     ` Alex Kosorukoff
  2014-05-23 15:39       ` Bastien
  0 siblings, 1 reply; 7+ messages in thread
From: Alex Kosorukoff @ 2014-05-23 15:24 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 566 bytes --]

Bastien:

did you mean the reply on the Capture Abort thread? This is a different
bug, unrelated to that the Capture Abort one. In this case capture doesn't
abort, but returns to a different place in buffer than the one it was
invoked from.

Thanks,
Alex


On Fri, May 23, 2014 at 5:30 AM, Bastien <bzg@gnu.org> wrote:

> Hi Alex,
>
> Alex Kosorukoff <alex@3form.com> writes:
>
> > sorry, I accidentally sent my previous patch. This is the one that
> > belongs here.
>
> See my other reply for this bug and let me know if it's fixed.
>
> Thanks,
>
> --
>  Bastien
>

[-- Attachment #2: Type: text/html, Size: 1115 bytes --]

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

* Re: [PATCH] Fix capture to make it save the point location
  2014-05-23 15:24     ` Alex Kosorukoff
@ 2014-05-23 15:39       ` Bastien
  2014-05-23 16:04         ` Alex Kosorukoff
  0 siblings, 1 reply; 7+ messages in thread
From: Bastien @ 2014-05-23 15:39 UTC (permalink / raw)
  To: Alex Kosorukoff; +Cc: emacs-orgmode

Hi Alex,

Alex Kosorukoff <alex@3form.com> writes:

> did you mean the reply on the Capture Abort thread? This is a
> different bug, unrelated to that the Capture Abort one. In this case
> capture doesn't abort, but returns to a different place in buffer
> than the one it was invoked from.

Indeed, sorry for the confusion.

The thing is: I can't reproduce the problem, even when following the
capmove.el instructions.

Can you reproduce the bug using latest maint or master branch?

If so, a simple description of the steps will be easier than a
file like capmove.el.

Thanks,

-- 
 Bastien

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

* Re: [PATCH] Fix capture to make it save the point location
  2014-05-23 15:39       ` Bastien
@ 2014-05-23 16:04         ` Alex Kosorukoff
  2014-05-23 17:36           ` Bastien
  0 siblings, 1 reply; 7+ messages in thread
From: Alex Kosorukoff @ 2014-05-23 16:04 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1333 bytes --]

Bastien:

yes, I can reproduce the bug using capmove.el with the latest master. It is
less salient in the small file that capmove makes, but very obvious in big
files where you get to a completely different place after capture finished.

Description of the steps:
1. open the same org file in two frames
2. make sure the positions in those frames are different
3. try to capture something from one of those frames
4. after capture finished, the positions in those frames become the same,
i.e. the frame where capture was invoked copied the position from another
frame and lost its context that was there before capture.

Best,
Alex



On Fri, May 23, 2014 at 8:39 AM, Bastien <bzg@altern.org> wrote:

> Hi Alex,
>
> Alex Kosorukoff <alex@3form.com> writes:
>
> > did you mean the reply on the Capture Abort thread? This is a
> > different bug, unrelated to that the Capture Abort one. In this case
> > capture doesn't abort, but returns to a different place in buffer
> > than the one it was invoked from.
>
> Indeed, sorry for the confusion.
>
> The thing is: I can't reproduce the problem, even when following the
> capmove.el instructions.
>
> Can you reproduce the bug using latest maint or master branch?
>
> If so, a simple description of the steps will be easier than a
> file like capmove.el.
>
> Thanks,
>
> --
>  Bastien
>

[-- Attachment #2: Type: text/html, Size: 2078 bytes --]

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

* Re: [PATCH] Fix capture to make it save the point location
  2014-05-23 16:04         ` Alex Kosorukoff
@ 2014-05-23 17:36           ` Bastien
  0 siblings, 0 replies; 7+ messages in thread
From: Bastien @ 2014-05-23 17:36 UTC (permalink / raw)
  To: Alex Kosorukoff; +Cc: emacs-orgmode

Hi Alex,

Alex Kosorukoff <alex@3form.com> writes:

> Description of the steps:
> 1. open the same org file in two frames
> 2. make sure the positions in those frames are different
> 3. try to capture something from one of those frames
> 4. after capture finished, the positions in those frames become the
> same, i.e. the frame where capture was invoked copied the position
> from another frame and lost its context that was there before
> capture.

I don't see this -- see this quick video here:
http://bzg.fr/u/org-capture-bug.ogv

Maybe this depends on the capture template itself?

This is with a recent Emacs version from trunk, and Org 8.2.6-1.

-- 
 Bastien

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

end of thread, other threads:[~2014-05-23 17:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-02  2:00 [PATCH] Fix capture to make it save the point location Alex Kosorukoff
2014-05-02  2:03 ` Alex Kosorukoff
2014-05-23 12:30   ` Bastien
2014-05-23 15:24     ` Alex Kosorukoff
2014-05-23 15:39       ` Bastien
2014-05-23 16:04         ` Alex Kosorukoff
2014-05-23 17:36           ` Bastien

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).