GNU bug report logs - #14541
24.3.50; `ediff-buffers' does not play well with recent Cygwin version

Previous Next

Package: emacs;

Reported by: Drew Adams <drew.adams <at> oracle.com>

Date: Mon, 3 Jun 2013 04:15:02 UTC

Severity: minor

Tags: wontfix

Found in version 24.3.50

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 14541 <at> debbugs.gnu.org
Subject: Re: bug#14541: 24.3.50;
	`ediff-buffers' does not play well with recent Cygwin version
Date: Mon, 03 Jun 2013 18:40:38 +0300
> Date: Sun, 2 Jun 2013 21:12:40 -0700 (PDT)
> From: Drew Adams <drew.adams <at> oracle.com>
> 
> I used to use an old (2007?) version of Cygwin.  I just
> installed the latest Cygwin verion on Windows 7.  I use the same setup
> for Emacs as previously (cygwin-mount.el, then setup-cygwin.el, both
> from Emacs Wiki).
> 
> Previously, Cygwin handled MS DOS-style file names OK.
> But `ediff-buffers' passes such file names for its temporary files,
> and the latest version of Cygwin (on Windows 7 at least) does not,
> by default, handle such file names: it issues a warning, which means
> that Emacs raises an error and prints the Cygwin warning.
> 
> This makes `ediff-buffers' unusable.  There is a workaround: set env var
> CYGWIN to `nodosfilewarning'.  I have added that to file setup-cygwin.el
> as a workaround.

May I again urge you to consider switching to MinGW ports instead?  I
can point to those I use for years, which means they are reliable.

> But I wonder if `ediff-buffers' could perhaps prevent the error/warning
> anyway.  I don't know whether it is really the 8-char DOS file-name
> format that Cygwin objects to, but I think so.  Maybe just having it
> use full Windows (not DOS) file names would be a fix?

No.  Cygwin wines about drive letters, not about the 8+3 aliases.  So
using long file names will not help.  You can verify that by invoking
Diff from the shell prompt.

We could perhaps push "CYGWIN=nodosfilewarning" into the environment
when Emacs launches child processes.  However, as these URLs indicate:

  http://stackoverflow.com/questions/9079982/cygwin-nodosfilewarning-doesnt-help-cygwin-warning
  http://superuser.com/questions/370545/behaviour-of-cygwins-nodosfilewarning

this solution is not reliable if there's some other Cygwin process
running on the same system.  So I think the only reliable solution is
to put the above into the System environment variables, so that
whatever the first Cygwin process is, it always sees it.




This bug report was last modified 3 years and 153 days ago.

Previous Next


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