[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 3de74bbeff 1/3: fixup! org-export-copy-buffer: Prev
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 3de74bbeff 1/3: fixup! org-export-copy-buffer: Prevent saving to disk |
Date: |
Fri, 7 Oct 2022 06:57:49 -0400 (EDT) |
branch: externals/org
commit 3de74bbeff704a1e297d0f8c445790928e71344f
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>
fixup! org-export-copy-buffer: Prevent saving to disk
* lisp/ox.el (org-export--generate-copy-script): Set
`write-contents-functions' after running `major-mode'.
* testing/lisp/test-ox.el (test-org-export/org-export-copy-buffer):
Add test.
---
lisp/ox.el | 8 ++++----
testing/lisp/test-ox.el | 17 +++++++++++++++++
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/lisp/ox.el b/lisp/ox.el
index 5142700c13..81be2b39cc 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -2655,9 +2655,6 @@ The function assumes BUFFER's major mode is `org-mode'."
ov-set))))
(lambda ()
(let ((inhibit-modification-hooks t))
- ;; Never write the buffer copy to disk, despite
- ;; `buffer-file-name' not being nil.
- (set 'write-contents-functions (list #'always))
;; Set major mode. Ignore `org-mode-hook' and other hooks as
;; they have been run already in BUFFER.
(unless (eq major-mode 'org-mode)
@@ -2679,7 +2676,10 @@ The function assumes BUFFER's major mode is `org-mode'."
(goto-char pos)
;; Overlays with invisible property.
(pcase-dolist (`(,start ,end ,invis) ols)
- (overlay-put (make-overlay start end) 'invisible invis)))))))
+ (overlay-put (make-overlay start end) 'invisible invis))
+ ;; Never write the buffer copy to disk, despite
+ ;; `buffer-file-name' not being nil.
+ (setq write-contents-functions (list #'always)))))))
(defun org-export--delete-comment-trees ()
"Delete commented trees and commented inlinetasks in the buffer.
diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el
index 573dbc6a52..90a9eb3aab 100644
--- a/testing/lisp/test-ox.el
+++ b/testing/lisp/test-ox.el
@@ -61,6 +61,23 @@ variable, and communication channel under `info'."
;;; Internal Tests
+(ert-deftest test-org-export/org-export-copy-buffer ()
+ "Test `org-export-copy-buffer' specifications."
+ ;; The buffer copy must not cause overwriting the original file
+ ;; buffer under any circumstances.
+ (org-test-with-temp-text-in-file
+ "* Heading"
+ (let ((file (buffer-file-name)))
+ (with-current-buffer (org-export-copy-buffer)
+ (insert "This must not go into actual file.")
+ (save-buffer)
+ (should
+ (equal
+ "* Heading"
+ (with-temp-buffer
+ (insert-file-contents file)
+ (buffer-string))))))))
+
(ert-deftest test-org-export/bind-keyword ()
"Test reading #+BIND: keywords."
;; Test with `org-export-allow-bind-keywords' set to t.