outline.el: Fix subtree movement.
Fixes: debbugs:19102 Co-authored-by: Stefan Monnier <monnier@iro.umontreal.ca> * outline.el (outline-move-subtree-down): Make sure we can move forward to find the end of the subtree and the insertion point.
This commit is contained in:
parent
b66511f768
commit
b3910f6539
2 changed files with 18 additions and 6 deletions
|
@ -1,3 +1,10 @@
|
|||
2014-11-27 Stephen Berman <stephen.berman@gmx.net>
|
||||
Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* outline.el (outline-move-subtree-down): Make sure we can move
|
||||
forward to find the end of the subtree and the insertion point
|
||||
(bug#19102).
|
||||
|
||||
2014-11-27 Leonard Randall <leonard.a.randall@gmail.com>
|
||||
|
||||
* textmodes/reftex-parse.el (reftex-using-biblatex-p): Make search
|
||||
|
|
|
@ -649,27 +649,32 @@ the match data is set appropriately."
|
|||
'outline-get-last-sibling))
|
||||
(ins-point (make-marker))
|
||||
(cnt (abs arg))
|
||||
;; Make sure we can move forward to find the end of the
|
||||
;; subtree and the insertion point.
|
||||
(maybe-forward-char (lambda ()
|
||||
(if (eq (char-after) ?\n) (forward-char 1)
|
||||
(if (and (eobp) (not (bolp))) (insert "\n")))))
|
||||
beg end folded)
|
||||
;; Select the tree
|
||||
;; Select the tree.
|
||||
(outline-back-to-heading)
|
||||
(setq beg (point))
|
||||
(save-match-data
|
||||
(save-excursion (outline-end-of-heading)
|
||||
(setq folded (outline-invisible-p)))
|
||||
(outline-end-of-subtree))
|
||||
(if (= (char-after) ?\n) (forward-char 1))
|
||||
(funcall maybe-forward-char)
|
||||
(setq end (point))
|
||||
;; Find insertion point, with error handling
|
||||
;; Find insertion point, with error handling.
|
||||
(goto-char beg)
|
||||
(while (> cnt 0)
|
||||
(or (funcall movfunc)
|
||||
(progn (goto-char beg)
|
||||
(error "Cannot move past superior level")))
|
||||
(user-error "Cannot move past superior level")))
|
||||
(setq cnt (1- cnt)))
|
||||
(if (> arg 0)
|
||||
;; Moving forward - still need to move over subtree
|
||||
;; Moving forward - still need to move over subtree.
|
||||
(progn (outline-end-of-subtree)
|
||||
(if (= (char-after) ?\n) (forward-char 1))))
|
||||
(funcall maybe-forward-char)))
|
||||
(move-marker ins-point (point))
|
||||
(insert (delete-and-extract-region beg end))
|
||||
(goto-char ins-point)
|
||||
|
|
Loading…
Add table
Reference in a new issue