Fix failures of vc-find-revision with non-ASCII file names

* lisp/vc/vc.el (vc-find-revision): Instead of binding
coding-system-for-write, make the buffer-file-coding-system of
the temporary buffer be no-conversion.  This avoids the
unwanted side effect of not encoding the command-line
arguments of the VCS commands invoked by the backend.
(Bug#34350)
This commit is contained in:
Eli Zaretskii 2019-02-08 08:59:23 +02:00
parent e9ff190531
commit 459b669b08

View file

@ -1966,10 +1966,13 @@ Use BACKEND as the VC backend if specified."
(with-current-buffer filebuf
(let ((failed t))
(unwind-protect
(let ((coding-system-for-read 'no-conversion)
(coding-system-for-write 'no-conversion))
(let ((coding-system-for-read 'no-conversion))
(with-temp-file filename
(let ((outbuf (current-buffer)))
;; We will read the backend's output with no
;; conversions, so we should also save the
;; temporary file with no encoding conversions.
(setq buffer-file-coding-system 'no-conversion)
;; Change buffer to get local value of
;; vc-checkout-switches.
(with-current-buffer filebuf