emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Ihor Radchenko <yantar92@posteo.net>
To: Ignacio Casso <ignaciocasso@hotmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: [BUG] org-capture is not reentrant [9.5.2 (9.5.2-gfbff08 @ /home/ignacio/.emacs.d/elpa/org-9.5.2/)]
Date: Thu, 20 Oct 2022 03:35:30 +0000	[thread overview]
Message-ID: <87v8of9ngd.fsf@localhost> (raw)
In-Reply-To: <PAXPR06MB77609C2CA8CAA7F6B79FE8BAC62F9@PAXPR06MB7760.eurprd06.prod.outlook.com>

Ignacio Casso <ignaciocasso@hotmail.com> writes:

> ... I took a quick look at the code and it
> seems that a global property list is used internally for the capture
> process, which seems to be only initialized at the start of the capture
> process and therefore the inner capture would overwrite it in our
> case. I saw also that the global property list is copied to a buffer
> local property list for the case of starting a new capture process
> before typing C-c C-c in the indirect capture buffer.

Confirmed.

Your understanding is correct. Capture inside capture is not supported
because of the internal capture code design.

> Do you think it would be easy to recycle that code to also have a stack
> of property lists and allow reentrancy? Would yo consider it useful? I
> would, but not really worth it to implement unless it's a low hanging
> fruit. If it is, I'd volunteer to do so (although my elisp-fu may be a
> little bit lacking yet).

It will be definitely useful. We have bugs surfaced from time to time
because of nested captures. However, one will need to check the logic
inside org-capture first and identify how to switch from global
variables holding the capture state to something more robust.

A good first step could be looking through org-capture code and the
functions it calls and supplying comments to places in the code that are
not immediately clear. Such comments would be useful for others as well.

We can also help in the process, if you volunteer.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


      reply	other threads:[~2022-10-20  3:36 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-10 10:25 [BUG] org-capture is not reentrant [9.5.2 (9.5.2-gfbff08 @ /home/ignacio/.emacs.d/elpa/org-9.5.2/)] Ignacio Casso
2022-10-20  3:35 ` Ihor Radchenko [this message]

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=87v8of9ngd.fsf@localhost \
    --to=yantar92@posteo.net \
    --cc=emacs-orgmode@gnu.org \
    --cc=ignaciocasso@hotmail.com \
    /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).