mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-12-13 09:32:19 +00:00
Do not mark buffer as modified with org-preserve-local-variables
* lisp/org-macs.el (org-preserve-local-variables): Do not mark buffer as modified or alter `buffer-undo-list' when body does not actually modify the buffer. This commit fixes a bug with `org-copy-subtree', which marked the buffer as modified and added an entry to the undo list when the visited file had local variables.
This commit is contained in:
parent
f9ea6c61ed
commit
aa789b89d7
@ -166,13 +166,19 @@
|
||||
(and (re-search-backward "^[ \t]*# +Local Variables:"
|
||||
(max (- (point) 3000) 1)
|
||||
t)
|
||||
(delete-and-extract-region (point) (point-max)))))))
|
||||
(let ((buffer-undo-list t))
|
||||
(delete-and-extract-region (point) (point-max)))))))
|
||||
(tick-counter-before (buffer-modified-tick)))
|
||||
(unwind-protect (progn ,@body)
|
||||
(when local-variables
|
||||
(org-with-wide-buffer
|
||||
(goto-char (point-max))
|
||||
(unless (bolp) (insert "\n"))
|
||||
(insert local-variables))))))
|
||||
(let ((modified (< tick-counter-before (buffer-modified-tick)))
|
||||
(buffer-undo-list t))
|
||||
(insert local-variables)
|
||||
(unless modified
|
||||
(restore-buffer-modified-p nil))))))))
|
||||
|
||||
(defmacro org-no-popups (&rest body)
|
||||
"Suppress popup windows and evaluate BODY."
|
||||
|
Loading…
Reference in New Issue
Block a user