emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Alex Kosorukoff <alex@3form.com>
To: emacs-orgmode@gnu.org
Subject: Re: [PATCH] Fix: Capture abort: (error: The mark is not set now, so there is no region)
Date: Thu, 8 May 2014 20:55:50 -0700	[thread overview]
Message-ID: <CAHD9_tT9HN9K_N2CJU1+Fsxz2fyqAA8dwpLUA1gZGqMA7uGv9Q@mail.gmail.com> (raw)
In-Reply-To: <877g681jma.fsf@bzg.ath.cx>

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

After I replaced my patch and merged Bastien's fix, I started seeing the
error though less frequently than before. It didn't occur in the template I
posted, but I started seeing it again in another template.

("w" "org-protocol tag" entry (file "~/org/bookmarks.org")
               "* %:description %(org-set-tags)\n  %i\n\n  %:link\n%?"
               :prepend t :empty-lines-after 1 :clock-in t :clock-resume t)

I switched back to my initial patch that was checking if the mark was set
before trying to access the region. This worked: the errors disappeared.
However, I couldn't understand why mark would be unset in the first place.
It turns out that this is a result of the function
org-capture-steal-local-variables that is copying mark-active variable from
another buffer. This results in an inconsistent state where mark is not set
and yet the variable mark-active is set. Emacs functions region-active-p
and use-region-p expect the state to be consistent and fail with this error
that they won't produce under normal circumstances. Here is the minimal
patch that fixes the root cause of this problem:

From 3d84403964dec1ac55810883e4e8a812c3ff94fc Mon Sep 17 00:00:00 2001
From: Alex Kosorukoff <alex@3form.com>
Date: Thu, 8 May 2014 20:27:59 -0700
Subject: [PATCH] org-capture: better fix for error "The mark is not set
now, ..."

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

diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index d57b9e0..3c62b1d 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -1590,6 +1590,7 @@ The template may still contain \"%?\" for cursor
positioning."
       (goto-char (point-min))
       (org-capture-steal-local-variables buffer)
       (setq buffer-file-name nil)
+      (setq mark-active nil)

       ;; %[] Insert contents of a file.
       (goto-char (point-min))
-- 
1.7.0.4





On Tue, Apr 29, 2014 at 4:05 AM, Bastien <bzg@gnu.org> wrote:

> Hi Alex,
>
> Alex Kosorukoff <alex@3form.com> writes:
>
> > I noticed a regression in the capture functionality after upgrading
> > org. Capture fails with error in subj
>
> fixed, thanks,
>
> --
>  Bastien
>

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

  reply	other threads:[~2014-05-09  3:56 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-26  0:06 [PATCH] Fix: Capture abort: (error: The mark is not set now, so there is no region) Alex Kosorukoff
2014-04-29 11:05 ` Bastien
2014-05-09  3:55   ` Alex Kosorukoff [this message]
2014-05-23 12:03     ` Bastien
2014-05-23 16:37       ` Alex Kosorukoff
2014-05-23 17:28         ` Bastien
2014-05-23 17:56           ` Alex Kosorukoff
2014-05-23 19:19             ` Bastien
2014-05-23 19:53               ` Bastien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHD9_tT9HN9K_N2CJU1+Fsxz2fyqAA8dwpLUA1gZGqMA7uGv9Q@mail.gmail.com \
    --to=alex@3form.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).