GNU bug report logs - #65049
29.1; vc-do-command fails in windows emacs 29.1

Previous Next

Package: emacs;

Reported by: Maxim Kim <habamax <at> gmail.com>

Date: Fri, 4 Aug 2023 07:51:01 UTC

Severity: normal

Found in version 29.1

Done: Dmitry Gutov <dmitry <at> gutov.dev>

Bug is archived. No further changes may be made.

Full log


Message #125 received at 65049 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dmitry <at> gutov.dev>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 65049 <at> debbugs.gnu.org, habamax <at> gmail.com, juri <at> linkov.net
Subject: Re: bug#65049: Minor update to the repro steps
Date: Mon, 28 Aug 2023 19:51:25 +0300
On 28/08/2023 19:12, Eli Zaretskii wrote:
>> Date: Mon, 28 Aug 2023 16:45:23 +0300
>> Cc:juri <at> linkov.net,habamax <at> gmail.com,65049 <at> debbugs.gnu.org
>> From: Dmitry Gutov<dmitry <at> gutov.dev>
>>
>> On 28/08/2023 15:12, Eli Zaretskii wrote:
>>>> Try edebug-instrumenting vc-diff-internal and then calling vc-root-diff
>>>> anywhere (C-x v D). When the execution reaches the line that we have
>>>> been discussing, you'll see that (vc-coding-system-for-diff (car files))
>>>> evaluates to 'undecided because (car files) is a directory.
>>>>
>>>> So this mechanism is always unused in vc-root-diff.
>>> OK, but in that case 'undecided' is the best guess we can come up
>>> with.  It basically lets Emacs guess when it actually sees the stuff
>>> in the diffs, while reading it into a buffer.
>> Yes, and if it's good enough for the (possibly?) most-frequently used
>> out of the vc-*-diff commands, then perhaps we don't need the additional
>> detection logic?
>>
>> Since its introduction 30 years ago indeed the situation has changed a
>> lot, with UTF-8 and its ubiquity. Removing the extra complication would
>> make code a little easier to read, and reduce variability when
>> reproducing problems. But there's no hurry, of course.
> I'm not sure I understand which part do you want to remove.

The part that currently looks like this:

	 (coding-system-for-read
          ;; Force the EOL conversion to be -unix, in case the files
          ;; to be compared have DOS EOLs.  In that case, EOL
          ;; conversion will produce a patch file that will either
          ;; fail to apply, or will change the EOL format of some of
          ;; the lines in the patched file.
          (coding-system-change-eol-conversion
	   (if files (vc-coding-system-for-diff (car files)) 'undecided)
           'unix))

As we've established, the only part that's used in vc-root-diff (and 
only now) is binding coding-system-change-eol-conversion to 
'undecided-unix'. We could leave it there, though it doesn't seem to 
change the behavior in my tests.




This bug report was last modified 232 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.