unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
@ 2013-06-03  4:12 Drew Adams
  2013-06-03 15:40 ` Eli Zaretskii
  0 siblings, 1 reply; 13+ messages in thread
From: Drew Adams @ 2013-06-03  4:12 UTC (permalink / raw)
  To: 14541

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: /cygdrive/c/Users/XXXXXX~1.XXX/AppData/Local/Temp/foo.el
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

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 *ediff-diff*>"))
  error("Errors in diff output.  Diff output is in %S" #<buffer *ediff-diff*>)
  ediff-prepare-error-list("^\\([0-9,]+[acd][0-9,]+
?$\\|[<>] \\|---\\|.*Warning *:\\|.*No +newline\\|.*missing +newline\\|^
?$\\)" #<buffer *ediff-diff*>)
  ediff-setup-diff-regions("c:/Users/XXXXXX~1.XXX/AppData/Local/Temp/foo.el"
                           "c:/Users/XXXXXX~1.XXX/AppData/Local/Temp/bar.el" nil)
  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)
  command-execute(ediff-buffers)

In GNU Emacs 24.3.50.1 (i386-mingw-nt6.1.7601)
 of 2013-06-01 on ODIEONE
Bzr revision: 112809 xfq.free@gmail.com-20130601123514-of64qkop6z48i3ko
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'





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-03  4:12 Drew Adams
@ 2013-06-03 15:40 ` Eli Zaretskii
  0 siblings, 0 replies; 13+ messages in thread
From: Eli Zaretskii @ 2013-06-03 15:40 UTC (permalink / raw)
  To: Drew Adams; +Cc: 14541

> Date: Sun, 2 Jun 2013 21:12:40 -0700 (PDT)
> From: Drew Adams <drew.adams@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.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
       [not found] ` <<83hahfxkw9.fsf@gnu.org>
@ 2013-06-03 16:21   ` Drew Adams
  2013-06-03 16:37     ` Eli Zaretskii
  2013-06-03 16:50     ` Achim Gratz
  0 siblings, 2 replies; 13+ messages in thread
From: Drew Adams @ 2013-06-03 16:21 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 14541

> > 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 w[h]ines 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.

I see.  That was not clear to me, but it seems you are right.

> 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.

I read the postings at both of those URLs, but I do not see anywhere where
they say what you say about reliability.  What is a concrete example of a
problem introduced by Emacs setting this env var?

FWIW, I have added (setenv "CYGWIN" "nodosfilewarning") to setup-cygwin.el.
That seems to take care of the problem without, AFAICT, creating other
problems.  But if you know of problems that it introduces, please let me know.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-03 16:21   ` bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version Drew Adams
@ 2013-06-03 16:37     ` Eli Zaretskii
  2013-06-03 16:50     ` Achim Gratz
  1 sibling, 0 replies; 13+ messages in thread
From: Eli Zaretskii @ 2013-06-03 16:37 UTC (permalink / raw)
  To: Drew Adams; +Cc: 14541

> Date: Mon, 3 Jun 2013 09:21:10 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 14541@debbugs.gnu.org
> 
> > 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.
> 
> I read the postings at both of those URLs, but I do not see anywhere where
> they say what you say about reliability.  What is a concrete example of a
> problem introduced by Emacs setting this env var?

According to those URLs, only the first Cygwin process invoked on a
system checks the CYGWIN environment variable.  It leaves the result
in a shared memory, which all the other Cygwin processes access.  So
if the first process was invoked outside of Emacs, and didn't see that
variable, you will get the warning, even if we push the variable into
the environment of our child programs.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-03 16:21   ` bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version Drew Adams
  2013-06-03 16:37     ` Eli Zaretskii
@ 2013-06-03 16:50     ` Achim Gratz
  2013-06-03 20:15       ` Drew Adams
  1 sibling, 1 reply; 13+ messages in thread
From: Achim Gratz @ 2013-06-03 16:50 UTC (permalink / raw)
  To: 14541

Drew Adams writes:
> I read the postings at both of those URLs, but I do not see anywhere where
> they say what you say about reliability.  What is a concrete example of a
> problem introduced by Emacs setting this env var?

It is not your business (or anyone else's but the user) to set that
environment variable.  Despite the appearance, setting things there is a
lot more akin to giving an option on the kernel boot line.  It only
takes effect when the cygwin1.dll is first loaded and can't be changed
later as long as at least once Cygwin process is runnning.

> FWIW, I have added (setenv "CYGWIN" "nodosfilewarning") to setup-cygwin.el.
> That seems to take care of the problem without, AFAICT, creating other
> problems.  But if you know of problems that it introduces, please let me know.

Don't.  You might override other settings that the user wants to take
effect or at best produce a confusing no-op.  You'd be much better off
if you would use cygpath to convert to POSIX instead.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for KORG EX-800 and Poly-800MkII V0.9:
http://Synth.Stromeko.net/Downloads.html#KorgSDada






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-03 16:50     ` Achim Gratz
@ 2013-06-03 20:15       ` Drew Adams
  2013-06-03 20:23         ` Eli Zaretskii
  2013-06-05 20:17         ` Achim Gratz
  0 siblings, 2 replies; 13+ messages in thread
From: Drew Adams @ 2013-06-03 20:15 UTC (permalink / raw)
  To: Achim Gratz, 14541

> > I read the postings at both of those URLs, but I do not see anywhere where
> > they say what you say about reliability.  What is a concrete example of a
> > problem introduced by Emacs setting this env var?
> 
> It is not your business (or anyone else's but the user) to set that
> environment variable.  

I am the user.  Just trying to make the recent Cygwin versionn work with
Emacs, like an older version did.

> Despite the appearance, setting things there is a
> lot more akin to giving an option on the kernel boot line.  It only
> takes effect when the cygwin1.dll is first loaded and can't be changed
> later as long as at least once Cygwin process is runnning.

Does not sound like a great design.  But what do I know?

> > FWIW, I have added (setenv "CYGWIN" "nodosfilewarning") to setup-
> > cygwin.el.  That seems to take care of the problem without, AFAICT,
> > creating other problems.  But if you know of problems that it
> > introduces, please let me know.
> 
> Don't.  You might override other settings that the user wants to take
> effect or at best produce a confusing no-op.  You'd be much better off
> if you would use cygpath to convert to POSIX instead.

I'll leave it in setup-cygwin.el, at least for now.  But I'll add a
comment per what Eli said: that if come other Cygwin process started
earlier and turned this off then turning it on here has no effect.

So it sounds like even Emacs Dev (i.e., what this bug report is about)
cannot fix this.  If the env var was already looked up once then Emacs
cannot change it.

Sounds like the only good approach for an Emacs user on Windows, with
Cygwin installed, is to set the env var at the system level.  If that
is the case (please confirm) then I'll mention that too in a
setup-cygwin.el comment.  (And we might want to mention that in the
Emacs manual?)

OK, I suppose that's not the only good approach.  I guess you're
suggesting another, for someone who is willing to change to POSIX:
use the cygpath utility.  Feel free to document that one (for Emacs
users)...





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-03 20:15       ` Drew Adams
@ 2013-06-03 20:23         ` Eli Zaretskii
  2013-06-05 20:17         ` Achim Gratz
  1 sibling, 0 replies; 13+ messages in thread
From: Eli Zaretskii @ 2013-06-03 20:23 UTC (permalink / raw)
  To: Drew Adams; +Cc: 14541, Stromeko

> Date: Mon, 3 Jun 2013 13:15:02 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> 
> Sounds like the only good approach for an Emacs user on Windows, with
> Cygwin installed, is to set the env var at the system level.

That's the only way, yes.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-03 20:15       ` Drew Adams
  2013-06-03 20:23         ` Eli Zaretskii
@ 2013-06-05 20:17         ` Achim Gratz
  2013-06-05 23:55           ` Drew Adams
  1 sibling, 1 reply; 13+ messages in thread
From: Achim Gratz @ 2013-06-05 20:17 UTC (permalink / raw)
  To: 14541

Drew Adams writes:
>> It is not your business (or anyone else's but the user) to set that
>> environment variable.  
>
> I am the user.  Just trying to make the recent Cygwin versionn work with
> Emacs, like an older version did.

You are putting this file on EmacsWiki for others to use, aren't you?
Secondly, that warning is there for a reason, so simply switching it off
certainly isn't going to do the right thing for everyone.

>> Don't.  You might override other settings that the user wants to take
>> effect or at best produce a confusing no-op.  You'd be much better off
>> if you would use cygpath to convert to POSIX instead.
>
> I'll leave it in setup-cygwin.el, at least for now.  But I'll add a
> comment per what Eli said: that if come other Cygwin process started
> earlier and turned this off then turning it on here has no effect.

Again: it simply doesn't work the way you think it works.  The comment
isn't helping that issue in any way.  It is wrong to do this in
setup-cygwin.el even when you want this environment variable to have
exactly that value.  It must already be set before Emacs gets started.

> Sounds like the only good approach for an Emacs user on Windows, with
> Cygwin installed, is to set the env var at the system level.  If that
> is the case (please confirm) then I'll mention that too in a
> setup-cygwin.el comment.  (And we might want to mention that in the
> Emacs manual?)

The only way to have it working reliably is to set it from the system
panel, then log off and on again.

I'm not sure what you want Emacs to document: the problem is that you
are using non-Windows tools together with a Windows Emacs and you aren't
correctly converting the different path conventions by these tools and
Emacs.  That is not a Cygwin problem and not an Emacs problem.

> OK, I suppose that's not the only good approach.  I guess you're
> suggesting another, for someone who is willing to change to POSIX:
> use the cygpath utility.  Feel free to document that one (for Emacs
> users)...

Actually, emacs-w32 from Cygwin is much better in almost all regards and
doesn't have the problem to begin with because it never uses any Windows
path names.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Wavetables for the Terratec KOMPLEXER:
http://Synth.Stromeko.net/Downloads.html#KomplexerWaves






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-05 20:17         ` Achim Gratz
@ 2013-06-05 23:55           ` Drew Adams
  2013-06-06 19:07             ` Achim Gratz
  0 siblings, 1 reply; 13+ messages in thread
From: Drew Adams @ 2013-06-05 23:55 UTC (permalink / raw)
  To: Achim Gratz, 14541

> You are putting this file on EmacsWiki for others to use, aren't you?

Yes, I am.  To use if they want to.  I put a lot of stuff on Emacs
Wiki for others to use.  Some of it good, some of it no doubt not
as good.  And I will continue to do so, until I stop hacking Emacs.

I put code (and doc and...) on the wiki for anyone who finds it
helpful and wants to use it.  Anyone who does not want to use it
need not use it.  Anyone who wants to use setup-cygwin.el as
inspiration for their own, better setup file is welcome to copy &
adapt it.  They are also welcome to ignore it altogether.  It is
offered as is - no guarantees.

You clearly have your idea of what can be helpful; I have mine.
I know that this file has helped people.  And I don't know of
anyone who has been harmed by its existence.  But no doubt we
can do better - please do!

> Secondly, that warning is there for a reason, so simply switching
> it off certainly isn't going to do the right thing for everyone.

No one says that switching it off pretends to do the right thing
for everyone.  (Like Cygwin, for that matter, or even Emacs...)
Are you always this black & white?

Surely, turning it off (or on) for everyone would *NOT* DTRT for
everyone.  Otherwise there would be no need for the switch.
Where you go wrong (apparently) is assuming that setup-cygwin.el
is for everyone.  And (seemingly) that if it is not good for
everyone then it cannot be good for anyone.

> >> Don't.  You might override other settings that the user wants to take
> >> effect or at best produce a confusing no-op.  You'd be much better off
> >> if you would use cygpath to convert to POSIX instead.
> >
> > I'll leave it in setup-cygwin.el, at least for now.  But I'll add a
> > comment per what Eli said: that if come other Cygwin process started
> > earlier and turned this off then turning it on here has no effect.
> 
> Again: it simply doesn't work the way you think it works.

I like how you are so certain of what I think. ;-)  Should we judge
your certainty about Cygwin and Emacs similarly?  I hope not.

> The comment isn't helping that issue in any way.

I disagree.  I believe there are others who, like me, use Cygwin
mainly to provide `grep' etc. to Emacs.  There are also people who
do not even know how to set an env var in Windows, or might be
hesitant to do so.  For such a user, this file likely - typically
- will get Emacs working with Cygwin.

The real shame is that Cygwin no longer works with Emacs out of the
box.  From my perspective, which is admittedly limited wrt Cygwin,
that's more or less a regression.  (Perhaps I should have hung onto
my old version of Cygwin...)

And the thing about the env var being cached and looked up only by
the first Cygwin process seems downright perverted.  I repeat:
from my limited and ignorant perspective.  I have used Emacs on
Windows with Cygwin for many moon (decades).  Always in a limited
way, but always with no particular problem.

> It is wrong to do this in setup-cygwin.el even when you want this
> environment variable to have exactly that value.

Wrong?  Feel free to provide an Emacs setup file that "DTRT for
everyone" all the time.  Feel free to point out, on the wiki or
anywhere else, that setup-cygwin.el is wrong, bad, evil, or
whatever.

But especially, please do provide something better.  I will be
the first to use it and to point others to it, believe me!

I posted setup-cygwin.el because it took me a while to piece
together the stuff it contains, and I found that I needed it, in
addition to cygwin-mount.el.  I don't know or imagine that
everyone needs it.

I make no claim about its contents being 100% correct or complete.
Far from it.  It is a hack job born out of ignorance.  It is just
something I have used and still use.  And I know it has helped
others too, regardless of its probably being "wrong" in more than
one way.

And I'll be glad to use something better, when I come across it.

> It must already be set before Emacs gets started.

Not as far as I can see.  Not for the case I use it for: using
Cygwin almost exclusively with Emacs.  In that use case, the
first Cygwin process is launched by Emacs.

I do understand that setting the env var is better (and is sure).
I understand that it is needed if you expect to use Cygwin outside
Emacs, to be sure that the first Cygwin process sees the same
value.

But setup-cygwin.el works for the simple Emacs-only use case -
just in case you have not set the env var .

> > Sounds like the only good approach for an Emacs user on Windows, with
> > Cygwin installed, is to set the env var at the system level.  If that
> > is the case (please confirm) then I'll mention that too in a
> > setup-cygwin.el comment.  (And we might want to mention that in the
> > Emacs manual?)
> 
> The only way to have it working reliably is to set it from the
> system panel, then log off and on again.

Sounds right to me.  And Eli too confirmed that.

But wasn't it you, BTW, who said that an alternative (presumably
working reliably) is to "use cygpath to convert to POSIX instead"?

Eli was more definitive, seemingly rejecting that alternative you
mentioned, when he confirmed "That's the _only_ way, yes."

Of course, "working reliably" is a strange term for a workaround
for such a hack (apparently) as this exceptional env var presents.
It may work reliably, but it seems to be a weird way of doing
things (the caching/one-time-lookup, I mean).

(Thinking that it seems weird does not mean that I have a better
idea for Cygwin, obviously.  Presumably this hack was the best
approach available.)

> I'm not sure what you want Emacs to document: the problem is that you
> are using non-Windows tools together with a Windows Emacs and you aren't
> correctly converting the different path conventions by these tools and
> Emacs.  That is not a Cygwin problem and not an Emacs problem.

Fair enough (though Cygwin is a Windows tool, AFAIK).  Nevertheless,
at least for the uses I make of Cygwin with Emacs, it seems to work
fine (once the env var is set), and it has for decades (without the
env var).

Now, if I used Cygwin as a *developer* on Windows (outside Emacs),
that might be different, as Eli has pointed out in the past.
I don't doubt that there is an impedance mismatch between Windows
Emacs and Cygwin, if you look hard enough.  For what I do, however,
I haven't run into it, so far.  I make no claim for anyone else.

> > OK, I suppose that's not the only good approach.  I guess you're
> > suggesting another, for someone who is willing to change to POSIX:
> > use the cygpath utility.  Feel free to document that one (for Emacs
> > users)...
> 
> Actually, emacs-w32 from Cygwin is much better in almost all regards and
> doesn't have the problem to begin with because it never uses any Windows
> path names.

Aha - that's where you're coming from.  Thanks, but no thanks.
I will stick with vanilla GNU Emacs.  (Call me wrong.)

But I am sure both you and Eli are right that the combination of
Windows Emacs with Cygwin is not ideal for either.  It happens that
it works well enough for me, and it's the package I prefer - so far.
Sorry about that.

IMO, it would be good if Cygwin played better with Windows Emacs.
But I have no idea how feasible or difficult that would be to realize.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-05 23:55           ` Drew Adams
@ 2013-06-06 19:07             ` Achim Gratz
  2013-06-06 20:21               ` Eli Zaretskii
  2013-06-06 20:42               ` Drew Adams
  0 siblings, 2 replies; 13+ messages in thread
From: Achim Gratz @ 2013-06-06 19:07 UTC (permalink / raw)
  To: 14541

Drew Adams writes:
>> It is wrong to do this in setup-cygwin.el even when you want this
>> environment variable to have exactly that value.
>
> Wrong?  Feel free to provide an Emacs setup file that "DTRT for
> everyone" all the time.

As I've been unsuccessfully trying to explain to you, there can be no
such setup file.

> But especially, please do provide something better.  I will be
> the first to use it and to point others to it, believe me!

I think I've already said that if you want to set that option and be
sure it takes effect, you need to do it from the system panel.  That's
what you might put in a comment in setup-cygwin.el, without trying to
produce unknown and potentially undefined or unwanted effects by setting
the CYGWIN environment variable.

>> It must already be set before Emacs gets started.
>
> Not as far as I can see.  Not for the case I use it for: using
> Cygwin almost exclusively with Emacs.  In that use case, the
> first Cygwin process is launched by Emacs.

There never was a dispute that it didn't solved your problem.  In
general however, you can't even be sure that Emacs starts the first
Cygwin process after it gets to setup-cygwin.el and if you install
Cygwin to provide services there will never be any point in time where
there is no Cygwin process while your session is active.

> But wasn't it you, BTW, who said that an alternative (presumably
> working reliably) is to "use cygpath to convert to POSIX instead"?

Yes.  That warning says "please do not hand a Windows path to Cygwin",
so you would never see this warning or need an option to suppress it if
you would use POSIX paths only.  The tool to convert between the two
representations is cygpath.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf rackAttack:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-06 19:07             ` Achim Gratz
@ 2013-06-06 20:21               ` Eli Zaretskii
  2022-02-13  9:26                 ` Lars Ingebrigtsen
  2013-06-06 20:42               ` Drew Adams
  1 sibling, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2013-06-06 20:21 UTC (permalink / raw)
  To: Achim Gratz; +Cc: 14541

> From: Achim Gratz <Stromeko@nexgo.de>
> Date: Thu, 06 Jun 2013 21:07:08 +0200
> 
> Yes.  That warning says "please do not hand a Windows path to Cygwin",
> so you would never see this warning or need an option to suppress it if
> you would use POSIX paths only.  The tool to convert between the two
> representations is cygpath.

That's unworkable.  There's no way to set up Emacs to use cygpath in
every place it passes a file name to external programs.  Especially if
some of those programs are native Windows executables, not Cygwin
programs.

So no, there's no way at all to arrange for Cygwin programs invoked
from a native Emacs to always get Posix-style file names.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-06 19:07             ` Achim Gratz
  2013-06-06 20:21               ` Eli Zaretskii
@ 2013-06-06 20:42               ` Drew Adams
  1 sibling, 0 replies; 13+ messages in thread
From: Drew Adams @ 2013-06-06 20:42 UTC (permalink / raw)
  To: Achim Gratz, 14541

> As I've been unsuccessfully trying to explain to you, there can be no
> such setup file.

And yet there is such a file.

> > But especially, please do provide something better.  I will be
> > the first to use it and to point others to it, believe me!
> 
> I think I've already said that if you want to set that option and be
> sure it takes effect, you need to do it from the system panel.

I think I've already said that I recognize that.

> That's what you might put in a comment in setup-cygwin.el, 

Which is just what I did.  Here is the comment, in case you have
not already taken a look:

;;; Without this env var setting, Cygwin causes `ediff-buffers', at
;;; least, to raise an error.  Making this setting here might have no
;;; effect, as the env var is checked only by the first Cygwin process
;;; invoked during your Windows session.  For best results, set this
;;; env var globally, in Windows itself.  An alternative might be to
;;; use `cygpath' to change from MS Windows file names to POSIX.

I might even cite this bug report there, so users can get more detail.

> without trying to produce unknown and potentially undefined or
> unwanted effects by setting the CYGWIN environment variable.

Sorry, bug I want to set that variable.  In the file, just in case
it is not set yet.

> >> It must already be set before Emacs gets started.
> >
> > Not as far as I can see.  Not for the case I use it for: using
> > Cygwin almost exclusively with Emacs.  In that use case, the
> > first Cygwin process is launched by Emacs.
> 
> There never was a dispute that it didn't solved your problem.  In
> general however, you can't even be sure that Emacs starts the first
> Cygwin process after it gets to setup-cygwin.el and if you install
> Cygwin to provide services there will never be any point in time where
> there is no Cygwin process while your session is active.

Maybe so.  There was never any dispute that setting the var in this
file is not a panacea.

> > But wasn't it you, BTW, who said that an alternative (presumably
> > working reliably) is to "use cygpath to convert to POSIX instead"?
> 
> Yes.  That warning says "please do not hand a Windows path to Cygwin",
> so you would never see this warning or need an option to suppress it if
> you would use POSIX paths only.  The tool to convert between the two
> representations is cygpath.

You claimed explicitly that the _only_ solution is to set the env var
at the system level.  And yet you also claim that there is another
solution: convert to POSIX using cygpath.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version
  2013-06-06 20:21               ` Eli Zaretskii
@ 2022-02-13  9:26                 ` Lars Ingebrigtsen
  0 siblings, 0 replies; 13+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-13  9:26 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 14541, Achim Gratz

Eli Zaretskii <eliz@gnu.org> writes:

> That's unworkable.  There's no way to set up Emacs to use cygpath in
> every place it passes a file name to external programs.  Especially if
> some of those programs are native Windows executables, not Cygwin
> programs.
>
> So no, there's no way at all to arrange for Cygwin programs invoked
> from a native Emacs to always get Posix-style file names.

Skimming this thread, it seems like there's nothing actionable here on
the Emacs side, so I'm therefore closing this bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2022-02-13  9:26 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <<7d461150-fe55-4278-bb7a-22fc24811364@default>
     [not found] ` <<83hahfxkw9.fsf@gnu.org>
2013-06-03 16:21   ` bug#14541: 24.3.50; `ediff-buffers' does not play well with recent Cygwin version Drew Adams
2013-06-03 16:37     ` Eli Zaretskii
2013-06-03 16:50     ` Achim Gratz
2013-06-03 20:15       ` Drew Adams
2013-06-03 20:23         ` Eli Zaretskii
2013-06-05 20:17         ` Achim Gratz
2013-06-05 23:55           ` Drew Adams
2013-06-06 19:07             ` Achim Gratz
2013-06-06 20:21               ` Eli Zaretskii
2022-02-13  9:26                 ` Lars Ingebrigtsen
2013-06-06 20:42               ` Drew Adams
2013-06-03  4:12 Drew Adams
2013-06-03 15:40 ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).