emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] org-paste-subtree and org-refile broken


From: David Maus
Subject: Re: [O] org-paste-subtree and org-refile broken
Date: Sat, 20 Aug 2011 20:41:24 +0200
User-agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.8 Emacs/23.2 (i486-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

At Sat, 13 Aug 2011 09:03:40 -0500,
Matt Lundin wrote:
>
> David Maus <address@hidden> writes:
>
> > At Sat, 13 Aug 2011 09:25:19 +0200,
> > David Maus wrote:
> >>
> >> Hi Matt,
> >> Hi Sebastien,
> >>
> >> I pushed a temporary workaround to master that should fix the problem
> >> with refile and capture. Both depend on a buggy behavior of
> >> org-paste-subtree, i.e. pasting a subtree *above* the target headline
> >> when called with point at the beginning of the target headline.
> >
> > If you have already pulled, please pull again. Had confused something,
> > fixed now.
>
> Thanks for fixing this! Refiling is working well now. Could you explain
> what you mean by a "buggy behavior of org-paste-subtree." AFAIK,
> org-paste-subtree has always pasted the subtree above the current tree
> if the point is at the beginning of the headline. Is there something in
> the documentation that suggests that this should not be the case? I
> believe this behavior is consistent with
> org-insert-heading-respect-content, which inserts a new heading above
> the current heading if called at the beginning of a headline. For
> instance, in the following example...
>
> --8<---------------cut here---------------start------------->8---
> * One
>   Text in one
> * Two
>   Text in two
> ** Subpoint two
>    Text in subpoint two.
> * Three
>   Text in three
> * Four
>   Text in four
> --8<---------------cut here---------------end--------------->8---
>
> If I kill headline four, move the point to the beginning of headline
> three, and yank (i.e., call org-paste-subtree), I get the following,
> which seems to me correct:
>
> --8<---------------cut here---------------start------------->8---
> * One
>   Text in one
> * Two
>   Text in two
> ** Subpoint two
>    Text in subpoint two.
> * Four
>   Text in four
>
> * Three
>   Text in three
> --8<---------------cut here---------------end--------------->8---
>
> Similarly, if I place the cursor on three and call
> org-insert-heading-respect-content (M-RET), the new headline is inserted
> above the headline:
>
> --8<---------------cut here---------------start------------->8---
> * One
>   Text in one
> * Two
>   Text in two
> ** Subpoint two
>    Text in subpoint two.
> *
> * Three
>   Text in three
> * Four
>   Text in four
> --8<---------------cut here---------------end--------------->8---
>

What bothers me is the fact that paste-subtree operates on the
previous sibling of a headline if called with explicit level and point
at the beginning of a headline.

--8<---------------cut here---------------start------------->8---
* One
  Text in one
* Two
  Text in two
** Subpoint two
   Text in subpoint two.
* Three
  Text in three
* Four
  Text in four
--8<---------------cut here---------------end--------------->8---

Cut Four, move point at the beginning of Three and paste with a level
of 2 (C-u 2 C-c C-x C-y) and you get:

--8<---------------cut here---------------start------------->8---
* One
  Text in one
* Two
  Text in two
** Subpoint two
   Text in subpoint two.
** Four
   Text in four
* Three
  Text in three
--8<---------------cut here---------------end--------------->8---

For refile this means that if you refile Four to Two, refile operates
on Two by operating on Two's following-sibling, Three.

There seems to be no practical problem, it's
just... strange. Especially if you consider pasting a subtree with
point somewhere on a headline but not at the beginning. Here []
represents point.

--8<---------------cut here---------------start------------->8---
* One
  Text in one
* T[]wo
  Text in two
** Subpoint two
   Text in subpoint two.
* Three
  Text in three
--8<---------------cut here---------------end--------------->8---

I've noticed that Org did not cover this case, e.g. calculated the
paste level correctly but pasted above. What I expected Org to do in
this case is to paste the subtree as last child of Two. If this
expectation is implemented (I am on it) then pasting above if point is
at beginning of headline is strange because point is still on the
heading but the direction of paste is reversed. It's not a practical
problem if the subtree is pasted with the same level as the target
headline (i.e. its sibling), but still...

Best,
  -- David
--
OpenPGP... 0x99ADB83B5A4478E6
Jabber.... address@hidden
Email..... address@hidden

Attachment: pgp1nOH00M4Po.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]