From: Eli Zaretskii Date: Thu, 31 Mar 2016 20:01:13 +0000 (+0300) Subject: Fix EOL decoding in vc-annotate with SVN back-end on MS-Windows X-Git-Tag: emacs-25.0.93~86 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/e30c3e9a9cca3ae84d4da132f334f1b8b6df45ac?hp=df441b362c25c4ad59ea3d83137328d0d4098eaf Fix EOL decoding in vc-annotate with SVN back-end on MS-Windows * lisp/vc/vc-annotate.el (vc-annotate): Force DOS EOL decoding on MS-Windows and MS-DOS, when processing the output of "svn annotate". --- diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el index ed038f1d4e..379ac95517 100644 --- a/lisp/vc/vc-annotate.el +++ b/lisp/vc/vc-annotate.el @@ -432,6 +432,14 @@ should be applied to the background or to the foreground." (with-output-to-temp-buffer temp-buffer-name (let ((backend (or vc-bk (vc-backend file))) (coding-system-for-read buffer-file-coding-system)) + ;; On DOS/Windows, "svn annotate" will produce CRLF EOLs even + ;; if the original file has Unix EOLs, which will show ^M + ;; characters in the Annotate buffer. Prevent that by forcing + ;; DOS EOL decoding. + (if (memq system-type '(windows-nt ms-dos)) + (setq coding-system-for-read + (coding-system-change-eol-conversion coding-system-for-read + 'dos))) (vc-call-backend backend 'annotate-command file (get-buffer temp-buffer-name) rev) ;; we must setup the mode first, and then set our local