src: Use `replace-buffer-contents' only for emacs >= 27

* lisp/org-src.el (org-edit-src-save):
(org-edit-src-exit): Use `replace-buffer-contents' only for emacs >=
27.

It was introduced in emacs 26.1, but earlier versions made no
guarantees of correctness.
This commit is contained in:
Sébastien Miquel 2021-06-01 08:56:48 +02:00 committed by Nicolas Goaziou
parent aa0fa8c753
commit e2550506eb

View file

@ -1199,12 +1199,12 @@ Throw an error if there is no such buffer."
;; insert new contents. ;; insert new contents.
(delete-overlay overlay) (delete-overlay overlay)
(let ((expecting-bol (bolp))) (let ((expecting-bol (bolp)))
(if (version< emacs-version "26.1") (if (version< emacs-version "27.1")
(progn (delete-region beg end) (progn (delete-region beg end)
(insert (with-current-buffer write-back-buf (buffer-string)))) (insert (with-current-buffer write-back-buf (buffer-string))))
(save-restriction (save-restriction
(narrow-to-region beg end) (narrow-to-region beg end)
(replace-buffer-contents write-back-buf) (replace-buffer-contents write-back-buf 0.1 nil)
(goto-char (point-max)))) (goto-char (point-max))))
(when (and expecting-bol (not (bolp))) (insert "\n"))) (when (and expecting-bol (not (bolp))) (insert "\n")))
(kill-buffer write-back-buf) (kill-buffer write-back-buf)
@ -1246,13 +1246,13 @@ Throw an error if there is no such buffer."
(undo-boundary) (undo-boundary)
(goto-char beg) (goto-char beg)
(let ((expecting-bol (bolp))) (let ((expecting-bol (bolp)))
(if (version< emacs-version "26.1") (if (version< emacs-version "27.1")
(progn (delete-region beg end) (progn (delete-region beg end)
(insert (with-current-buffer write-back-buf (insert (with-current-buffer write-back-buf
(buffer-string)))) (buffer-string))))
(save-restriction (save-restriction
(narrow-to-region beg end) (narrow-to-region beg end)
(replace-buffer-contents write-back-buf) (replace-buffer-contents write-back-buf 0.1 nil)
(goto-char (point-max)))) (goto-char (point-max))))
(when (and expecting-bol (not (bolp))) (insert "\n"))))) (when (and expecting-bol (not (bolp))) (insert "\n")))))
(when write-back-buf (kill-buffer write-back-buf)) (when write-back-buf (kill-buffer write-back-buf))