[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwi

From: Drew Adams
Subject: bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
Date: Sun, 2 Jun 2013 21:12:40 -0700 (PDT)

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.

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?

This is the error shown in buffer *ediff-errors*:

cygwin warning:
  MS-DOS style path detected: c:/Users/XXXXXX~1.XXX/AppData/Local/Temp/foo.el
  Preferred POSIX equivalent is: 
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:

And this is the *Backtrace* I see:

Debugger entered--Lisp error:
(error "Errors in diff output.  Diff output is in #<buffer *ediff-diff*>")
  signal(error ("Errors in diff output.  Diff output is in #<buffer 
  error("Errors in diff output.  Diff output is in %S" #<buffer *ediff-diff*>)
?$\\|[<>] \\|---\\|.*Warning *:\\|.*No +newline\\|.*missing +newline\\|^
?$\\)" #<buffer *ediff-diff*>)
  ediff-setup(#<buffer foo.el> "c:/Users/XXXXXX~1.XXX/AppData/Local/Temp/foo.el"
              #<buffer bar.el> 
"c:/Users/XXXXXX~1.XXX/AppData/Local/Temp/bar.el" nil nil
((lambda nil (delete-file "c:/Users/XXXXXX~1.XXX/AppData/Local/Temp/foo.el")
(delete-file "c:/Users/XXXXXX~1.XXX/AppData/Local/Temp/bar.el")
(if (stringp nil) (delete-file nil)))) ((ediff-job-name . ediff-buffers)) nil)
  ediff-buffers-internal("foo.el" "bar.el" nil nil ediff-buffers)
  ediff-buffers("foo.el" "bar.el")
  call-interactively(ediff-buffers nil nil)

In GNU Emacs (i386-mingw-nt6.1.7601)
 of 2013-06-01 on ODIEONE
Bzr revision: 112809 address@hidden
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --with-gcc (4.7) --no-opt --enable-checking --cflags
 -IC:/Devel/emacs/build/include --ldflags -LC:/Devel/emacs/build/lib'

reply via email to

[Prev in Thread] Current Thread [Next in Thread]