From 66c3f8c6f54ec4a4aa4a3ca567e9c2ff5370246e Mon Sep 17 00:00:00 2001 Message-Id: <66c3f8c6f54ec4a4aa4a3ca567e9c2ff5370246e.1658643473.git.yantar92@gmail.com> From: Ihor Radchenko Date: Sun, 24 Jul 2022 14:14:58 +0800 Subject: [PATCH] org-capture-kill: Fix capture boundaries when deleting empty lines above * lisp/org-capture.el (org-capture-place-entry): (org-capture-place-item): (org-capture-place-table-line): (org-capture-place-plain-text): Store beginning of the capture region as marker. This will make the ORIGIN move if `org-capture-empty-lines-before` has to add/remove lines. Fixes https://orgmode.org/list/CAGyCDkPos+W_MEJffSZga83NsOLZx2XGTYEmSGQuHQvS-sNa8A@mail.gmail.com --- lisp/org-capture.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lisp/org-capture.el b/lisp/org-capture.el index 8748b7f84..6ca66835a 100644 --- a/lisp/org-capture.el +++ b/lisp/org-capture.el @@ -1178,7 +1178,7 @@ (defun org-capture-place-entry () ;; Make sure that last point is not folded. (org-fold-core-cycle-over-indirect-buffers (org-fold-region (max 1 (1- (point-max))) (point-max) nil)))) - (let ((origin (point))) + (let ((origin (point-marker))) (unless (bolp) (insert "\n")) (org-capture-empty-lines-before) (let ((beg (point))) @@ -1243,7 +1243,7 @@ (defun org-capture-place-item () (point)) beg))))))) ;; Insert template. - (let ((origin (point))) + (let ((origin (point-marker))) (unless (bolp) (insert "\n")) ;; When a new list is created, always obey to `:empty-lines' and ;; friends. @@ -1344,7 +1344,7 @@ (defun org-capture-place-table-line () ;; No table found. Create it with an empty header. (goto-char end) (unless (bolp) (insert "\n")) - (let ((origin (point))) + (let ((origin (point-marker))) (insert "| |\n|---|\n") (narrow-to-region origin (point)))) ;; In the current table, find the appropriate location for TEXT. @@ -1373,7 +1373,7 @@ (defun org-capture-place-table-line () (t (goto-char (org-table-end)))) ;; Insert text and position point according to template. - (let ((origin (point))) + (let ((origin (point-marker))) (unless (bolp) (insert "\n")) (let ((beg (point)) (end (save-excursion @@ -1405,7 +1405,7 @@ (defun org-capture-place-plain-text () (t ;; Beginning or end of file. (goto-char (if (org-capture-get :prepend) (point-min) (point-max))))) - (let ((origin (point))) + (let ((origin (point-marker))) (unless (bolp) (insert "\n")) (org-capture-empty-lines-before) (org-capture-position-for-last-stored (point)) -- 2.35.1