Hi all

I am still blocked with this issue. It looks like the content that is
pasted with the second invocation of org-paste-subtree is not just the
second org-cut-subtree but the accumulation of the first and the
second org-cut-subtree together. This MCE seems better to me than the
previous one as it does not use save-excursion:

#+begin_src emacs-lisp :results silent
  (defun temp ()
    (goto-char (point-min))
    (org-cut-subtree)
    (forward-line 2)
    (org-paste-subtree))
#+end_src

#+begin_src org
,* 1
,* 2
,* 3
,* 4
#+end_src

~M-: (temp) RET M-: (temp) RET~ results in

#+begin_src org
,* 3
,* 1
,* 1
,* 2
,* 4
#+end_src

with an unexpected reinsertion of "1" when inserting "2" resulting in
a duplicate "1".

Michael



---------- Forwarded message ---------
From: Michael Brand <michael.ch.br...@gmail.com>
Date: Thu, May 16, 2019 at 6:40 PM
Subject: Cut and paste an entry programmatically
To: Org Mode <emacs-orgmode@gnu.org>

Hi all

I would like to ask for some help to understand what am I doing wrong
with this minimal complete example:

#+begin_src org
,* 1
,* 2
,* 3
,* 4
#+end_src

#+begin_src emacs-lisp :results silent
  (defun temp ()
    (org-cut-subtree)
    (org-forward-heading-same-level 2)
    (org-paste-subtree))
#+end_src

When with point on 1 you do

    M-: (progn (save-excursion (temp)) (save-excursion (temp))) RET

the resulting buffer is the expected reordered 3, 1, 2, 4. When you do

    M-: (save-excursion (temp)) RET M-: (save-excursion (temp)) RET

the resulting buffer is 3, 1, 1, 2, 4 which is not what I want (Emacs
26.1 and today's Org mode master). Why is this and how to resolve?

Michael

Reply via email to