[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii c
From: |
Eli Zaretskii |
Subject: |
bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename |
Date: |
Thu, 07 Feb 2019 17:41:53 +0200 |
> From: Vincent Belaïche <vincent.belaiche@gmail.com>
> Date: Wed, 06 Feb 2019 20:52:38 +0100
> Cc: Vincent Belaïche <vincent.belaiche@gmail.com>
>
> After some debugging, I realized that the whole thing executes with
> default-directory set to "c:/blah/blah/blah/ê/trunk/" the following
> two commands:
>
> (process-file "svn" nil t nil "--non-interactive" "status" "-v" "ê.tex")
>
> and then:
>
> (process-file "svn" nil t nil "--non-interactive" "cat" "ê.tex")
>
> The first command works quite fine, but the second one fails, and having
> a look info the " *temp*" buffer, I saw that svn angrilly barks with
> some error message like this one:
>
> --8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
> svn: warning: W200005: 'C:\blah\blah\blah\\trunk\ª.tex' is not under version
> control
> svn: E200009: Could not cat all targets because some targets are not versioned
> svn: E200009: Illegal target for the requested operation
> --8<----8<----8<----8<----8<-- end -->8---->8---->8---->8---->8----
>
> looking more carefully at things, and having inspected the C code of
> function call-process, I realized that the variable
> coding-system-for-write has some importance, and tracing this I realized
> that when the first svn command is called the variable
> coding-system-for-write is nil, while when the second svn command is
> called it is 'no-conversion, which makes it fail.
Ouch! There's a real mess in vc-find-revision and its backend
implementations wrt encoding and decoding. I will address the general
problem separately, but for now please see if the patch below fixes
the immediate problem with SVN.
> OK, I know that some Askese people will probably say something like
> « don't use non-ASCII characters in file-names » which is IMHO quite a
> ASCII-centric way of thinking, so just in case, my answer is « Î wîll
> ùse nôn-ÀSCÎÎ çhærâctèrs névœrthelèss, because Î àm mysèlf a nôn-ASCII
> pèrsôn ! » ;-)
Is this part relevant? You didn't really think we refuse to support
non-ASCII file names, did you?
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 9925196..326284f 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1966,10 +1966,13 @@ vc-find-revision
(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
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename, Vincent Belaïche, 2019/02/06
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename,
Eli Zaretskii <=
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename, Eli Zaretskii, 2019/02/07
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename, Stefan Monnier, 2019/02/08
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename, Eli Zaretskii, 2019/02/08
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename, Stefan Monnier, 2019/02/08
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename, Eli Zaretskii, 2019/02/08
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename, Stefan Monnier, 2019/02/08
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename, Eli Zaretskii, 2019/02/09
- bug#34350: 27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename, Stefan Monnier, 2019/02/09