Browse Source

org-archive: Fix archive to datetree

* lisp/org-archive.el (org-archive-subtree): Fix archiving an entry in
  a date tree before an existing entry in the same month.

Reported-by: Klarre N <klarre@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/109614>
Nicolas Goaziou 3 years ago
parent
commit
b42b3aaafc
1 changed files with 7 additions and 1 deletions
  1. 7 1
      lisp/org-archive.el

+ 7 - 1
lisp/org-archive.el

@@ -339,7 +339,13 @@ this heading."
 			 ;; datetree archives don't need so much spacing.
 			 (replace-match (if datetree-date "\n" "\n\n"))))
 		;; No specific heading, just go to end of file.
-		(goto-char (point-max)) (unless datetree-date (insert "\n")))
+		(goto-char (point-max))
+		;; Subtree narrowing can let the buffer end on
+		;; a headline.  `org-paste-subtree' then deletes it.
+		;; To prevent this, make sure visible part of buffer
+		;; always terminates on a new line, while limiting
+		;; number of blank lines in a date tree.
+		(unless (and datetree-date (bolp)) (insert "\n")))
 	      ;; Paste
 	      (org-paste-subtree (org-get-valid-level level (and heading 1)))
 	      ;; Shall we append inherited tags?