diff options
author | Marco Wahl <marcowahlsoft@gmail.com> | 2018-04-11 14:55:00 +0200 |
---|---|---|
committer | Bastien <bzg@gnu.org> | 2018-04-27 01:08:29 +0200 |
commit | a0a40a465108d952ee6452d299ecbc5ffc4ed18a (patch) | |
tree | da6728536f67c577bbb5323587bcb17b6722504a | |
parent | 8cdefed80b5ea02b17e5e6ec17175b0fd0c53d05 (diff) | |
download | org-mode-a0a40a465108d952ee6452d299ecbc5ffc4ed18a.tar.gz |
org: Remove special whitespace treatment when moving subtree
* lisp/org.el (org-move-subtree-down): Remove special whitespace treatment.
* testing/lisp/test-org.el (test-org/drag-element-backward):
Accommodate test.
-rw-r--r-- | lisp/org.el | 29 | ||||
-rw-r--r-- | testing/lisp/test-org.el | 2 |
2 files changed, 5 insertions, 26 deletions
diff --git a/lisp/org.el b/lisp/org.el index 7db7f5d..d817c92 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -8164,32 +8164,22 @@ case." (ins-point (make-marker)) (cnt (abs arg)) (col (current-column)) - beg beg0 end txt folded ne-beg ne-end ne-ins ins-end) + beg end txt folded) ;; Select the tree (org-back-to-heading) - (setq beg0 (point)) - (save-excursion - (setq ne-beg (org-back-over-empty-lines)) - (setq beg (point))) + (setq beg (point)) (save-match-data (save-excursion (outline-end-of-heading) (setq folded (org-invisible-p))) (progn (org-end-of-subtree nil t) (unless (eobp) (backward-char)))) (outline-next-heading) - (setq ne-end (org-back-over-empty-lines)) (setq end (point)) - (goto-char beg0) - (when (and (> arg 0) (org-first-sibling-p) (< ne-end ne-beg)) - ;; include less whitespace - (save-excursion - (goto-char beg) - (forward-line (- ne-beg ne-end)) - (setq beg (point)))) + (goto-char beg) ;; Find insertion point, with error handling (while (> cnt 0) (unless (and (funcall movfunc) (looking-at org-outline-regexp)) - (goto-char beg0) + (goto-char beg) (user-error "Cannot move past superior level or buffer limit")) (setq cnt (1- cnt))) (when (> arg 0) @@ -8198,7 +8188,6 @@ case." (save-excursion (org-back-over-empty-lines) (or (bolp) (newline)))) - (setq ne-ins (org-back-over-empty-lines)) (move-marker ins-point (point)) (setq txt (buffer-substring beg end)) (org-save-markers-in-region beg end) @@ -8212,18 +8201,8 @@ case." (org-reinstall-markers-in-region bbb) (move-marker ins-point bbb)) (or (bolp) (insert "\n")) - (setq ins-end (point)) (goto-char ins-point) (org-skip-whitespace) - (when (and (< arg 0) - (org-first-sibling-p) - (> ne-ins ne-beg)) - ;; Move whitespace back to beginning - (save-excursion - (goto-char ins-end) - (let ((kill-whole-line t)) - (kill-line (- ne-ins ne-beg)) (point))) - (insert (make-string (- ne-ins ne-beg) ?\n))) (move-marker ins-point nil) (if folded (outline-hide-subtree) diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index dee6508..db4909b 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -3965,7 +3965,7 @@ Text. ;; Pathological case: handle call with point in blank lines right ;; after a headline. (should - (equal "* H2\n* H1\nText\n\n" + (equal "* H2\n\n* H1\nText\n" (org-test-with-temp-text "* H1\nText\n* H2\n\n<point>" (org-drag-element-backward) (buffer-string))))) |