]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix failures of vc-find-revision with non-ASCII file names
authorEli Zaretskii <eliz@gnu.org>
Fri, 8 Feb 2019 06:59:23 +0000 (08:59 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 8 Feb 2019 06:59:23 +0000 (08:59 +0200)
* 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)

lisp/vc/vc.el

index 9925196f73769b44c8beccdf0326a6866dbf807b..326284f4446735486c56e1e6e28c6f9fec387b2e 100644 (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