GNU bug report logs -
#20892
25.0.50; Applying vc-diff hunks on CRLF tracked files
Previous Next
Reported by: joaotavora <at> gmail.com (João Távora)
Date: Wed, 24 Jun 2015 11:30:05 UTC
Severity: normal
Found in version 25.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #23 received at 20892 <at> debbugs.gnu.org (full text, mbox):
> From: joaotavora <at> gmail.com (João Távora)
> Cc: monnier <at> iro.umontreal.ca, 20892 <at> debbugs.gnu.org
> Date: Fri, 01 Apr 2016 11:22:50 +0100
>
> In lisp/vc/vc.el, in vc-diff-internal, dynamically binding
> `coding-system-for-read' seems to be defeated by a call to
> `vc-setup-buffer', which in turn kills all local variables.
>
> I don't fully understand the interaction between buffer-local and
> lexically/dinamically bound variables but this seems wrong, right?
How come kill-all-local-variables can have any effect on the binding
of coding-system-for-read. Can you explain, or show the evidence that
vc-setup-buffer is the culprit here?
> If, to this, we add a fix in lisp/vc/vc-git.el and don't let it override
> an existing `coding-system-for-read'...
>
> diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
> index 8498cc8..c60125c 100644
> --- a/lisp/vc/vc-git.el
> +++ b/lisp/vc/vc-git.el
> @@ -1387,8 +1387,10 @@ This command shares argument histories with \\[rgrep] and \\[grep]."
> "A wrapper around `vc-do-command' for use in vc-git.el.
> The difference to vc-do-command is that this function always invokes
> `vc-git-program'."
> - (let ((coding-system-for-read vc-git-commits-coding-system)
> - (coding-system-for-write vc-git-commits-coding-system))
> + (let ((coding-system-for-read (or coding-system-for-read
> + vc-git-commits-coding-system))
> + (coding-system-for-write (or coding-system-for-write
> + vc-git-commits-coding-system)))
> (apply 'vc-do-command (or buffer "*vc*") okstatus vc-git-program
> ;; http://debbugs.gnu.org/16897
> (unless (and (not (cdr-safe file-or-list))
>
> the system seems to do the right thing and honour the intention of
>
> commit 0e2c793ffefa72c40c7731847d8210c2d7d0e515
> Author: Eli Zaretskii <eliz <at> gnu.org>
> Date: Tue Nov 26 21:17:55 2013 +0200
>
> Fix ugly ^M characters in Diff output shown by "C-x v u".
>
> What do you think?
I think that fixing EOL decoding shouldn't touch the value of
coding-system-for-read, only its EOL decoding part, if at all. And I
also don't see how does binding in vc-git interfere with the EOL
format of the diffs. Can you tell the details, i.e. how did you
arrive at the conclusion that the above binding is the culprit?
Thanks.
This bug report was last modified 9 years and 52 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.