[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master fcccd52: * lisp/vc/vc.el (vc-find-revision-no-save)
From: |
Juri Linkov |
Subject: |
[Emacs-diffs] master fcccd52: * lisp/vc/vc.el (vc-find-revision-no-save): Use decode-coding-inserted-region |
Date: |
Wed, 12 Dec 2018 18:17:12 -0500 (EST) |
branch: master
commit fcccd52ab086f94fe56900cf15fbdc0ea11b428b
Author: Juri Linkov <address@hidden>
Commit: Juri Linkov <address@hidden>
* lisp/vc/vc.el (vc-find-revision-no-save): Use
decode-coding-inserted-region
and after-insert-file-set-coding. Don't let-bind coding-system-for-read
and coding-system-for-write. For non-interactive use, let-bind
enable-local-variables to :safe and ignore errors from set-auto-mode call.
(Bug#33567)
---
lisp/vc/vc.el | 33 +++++++++++++++++++--------------
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 5ff9f4d..48b7c98 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -2033,20 +2033,25 @@ Unlike `vc-find-revision-save', doesn't save the buffer
to the file."
(with-current-buffer filebuf
(let ((failed t))
(unwind-protect
- (let ((coding-system-for-read 'no-conversion)
- (coding-system-for-write 'no-conversion))
- (with-current-buffer (or buffer (create-file-buffer filename))
- (unless buffer (setq buffer-file-name filename))
- (let ((outbuf (current-buffer)))
- (with-current-buffer filebuf
- (if backend
- (vc-call-backend backend 'find-revision file revision
outbuf)
- (vc-call find-revision file revision outbuf))))
- (goto-char (point-min))
- (if buffer (let ((buffer-file-name file)) (normal-mode))
(normal-mode))
- (set-buffer-modified-p nil)
- (setq buffer-read-only t))
- (setq failed nil))
+ (with-current-buffer (or buffer (create-file-buffer filename))
+ (unless buffer (setq buffer-file-name filename))
+ (let ((outbuf (current-buffer)))
+ (with-current-buffer filebuf
+ (if backend
+ (vc-call-backend backend 'find-revision file revision
outbuf)
+ (vc-call find-revision file revision outbuf))))
+ (decode-coding-inserted-region (point-min) (point-max) file)
+ (after-insert-file-set-coding (- (point-max) (point-min)))
+ (goto-char (point-min))
+ (if buffer
+ ;; For non-interactive, skip any questions
+ (let ((enable-local-variables :safe) ;; to find `mode:'
+ (buffer-file-name file))
+ (ignore-errors (set-auto-mode)))
+ (normal-mode))
+ (set-buffer-modified-p nil)
+ (setq buffer-read-only t))
+ (setq failed nil)
(when (and failed (unless buffer (get-file-buffer filename)))
(with-current-buffer (get-file-buffer filename)
(set-buffer-modified-p nil))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master fcccd52: * lisp/vc/vc.el (vc-find-revision-no-save): Use decode-coding-inserted-region,
Juri Linkov <=