[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/reformatter 0da7241ca2 34/81: Actually check for broken re
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/reformatter 0da7241ca2 34/81: Actually check for broken replace-buffer-contents |
Date: |
Tue, 5 Sep 2023 04:03:34 -0400 (EDT) |
branch: elpa/reformatter
commit 0da7241ca20df4d3e5f4ccbd03227816d8d5f698
Author: Steve Purcell <steve@sanityinc.com>
Commit: Steve Purcell <steve@sanityinc.com>
Actually check for broken replace-buffer-contents
It's possible that 27.0.x versions of Emacs might contain the same
broken implementation as 26.1, so it's best to avoid relying on the
Emacs version.
See https://github.com/jcollard/elm-mode/issues/156
---
reformatter.el | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
diff --git a/reformatter.el b/reformatter.el
index 74cbd7a761..7bccaa4884 100644
--- a/reformatter.el
+++ b/reformatter.el
@@ -212,19 +212,27 @@ DISPLAY-ERRORS, shows a buffer if the formatting fails."
,minor-mode-form)))
+(defconst reformatter--can-use-replace-buffer-contents
+ (when (fboundp 'replace-buffer-contents)
+ (with-temp-buffer
+ (insert "\u2666\nabc\n")
+ (let ((a (current-buffer)))
+ (with-temp-buffer
+ (insert "\u2666\naXbc\n")
+ (replace-buffer-contents a)
+ (string= (buffer-string) "\u2666\nabc\n")))))
+ "Non-nil if we have a working version of `replace-buffer-contents' in this
Emacs.")
+
(defun reformatter-replace-buffer-contents-from-file (file)
"Replace the accessible portion of the current buffer with the contents of
FILE."
- (if (and (fboundp 'replace-buffer-contents)
- ;; The initial version of `replace-buffer-contents' in 26.1 was
very broken
- (version<= "26.2" emacs-version))
- (progn
- (let ((tmp (generate-new-buffer " *temp*")))
- (unwind-protect
- (progn
- (with-current-buffer tmp
- (insert-file-contents file nil nil nil t))
- (replace-buffer-contents tmp))
- (kill-buffer tmp))))
+ (if reformatter--can-use-replace-buffer-contents
+ (let ((tmp (generate-new-buffer " *temp*")))
+ (unwind-protect
+ (progn
+ (with-current-buffer tmp
+ (insert-file-contents file nil nil nil t))
+ (replace-buffer-contents tmp))
+ (kill-buffer tmp)))
(insert-file-contents file nil nil nil t)))
- [nongnu] elpa/reformatter 9c6c239371 04/81: Generate a separate custom variable for the mode lighter, (continued)
- [nongnu] elpa/reformatter 9c6c239371 04/81: Generate a separate custom variable for the mode lighter, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 9478d6ca2d 19/81: Fix -on-save-mode docstring, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 466740b40a 17/81: Link to example of using reformatter in a user config, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter c684c0b30f 10/81: Add links to usages in the wild, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 2c85cd76e5 03/81: Always output :keymap and :lighter minor mode arguments, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 6484d45a87 07/81: Only support string mode lighters, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 123d192fb0 16/81: Use https for sanityinc.com link, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 2b2785557a 15/81: Clearer documentation, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter b2963f5100 23/81: Narrow to region when replacing contents with reformatter output, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 78eb8bc98a 09/81: Doc clarifications, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 0da7241ca2 34/81: Actually check for broken replace-buffer-contents,
ELPA Syncer <=
- [nongnu] elpa/reformatter 2fd158102f 54/81: Merge pull request #27 from purcell/files-in-place, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 6c5e7f64c5 41/81: Never use `replace-buffer-contents', ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 7219a0804c 48/81: Support for formatters which succeed with non-zero exit codes, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 00413b21ec 28/81: Add reminder to use a `defgroup` form, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter dc6278a6b1 49/81: Merge pull request #23 from purcell/non-zero-exit, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter c9450a39c3 32/81: Merge pull request #8 from wbolster/patch-1, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 48605c92a7 42/81: Add CI, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter e15598a0cc 40/81: Prefer `delete-trailing-whitespace` to the aggressive `whitespace-cleanup`, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 1bf00b2aa3 43/81: Add FUNDING.yml, ELPA Syncer, 2023/09/05
- [nongnu] elpa/reformatter 16a7b32736 25/81: Prefer zerop to (eq 0 ...), ELPA Syncer, 2023/09/05