Re: cygpath -w and .exe magic
On 8/26/2016 10:58 AM, Nellis, Kenneth wrote: > $ cmd /c DIR $(cygpath -w hello) But $ cmd /c $(cygpath -w hello) will execute hello.exe The fact that you get file not found error tells me that cmd is doing what it does. The purpose of the .exe magic is for executing the file from the Cygwin shell. My opinion is that we shouldn't rely on the .exe magic; there are hidden dangers and some use those dangers to a benefit. -- cyg Simple -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: cygpath -w and .exe magic
On Fri, Aug 26, 2016 at 10:58 AM, Nellis, Kenneth wrote: > Here is a contrived example: > > $ cmd /c DIR $(cygpath -w hello.exe) > Volume in drive C has no label. > Volume Serial Number is 6A15-FFB2 > > Directory of C:\cygwin\home\knellis\dev\c\hello > > 08/26/2016 10:4760,927 hello.exe >1 File(s) 60,927 bytes >0 Dir(s) 218,673,360,896 bytes free > $ cmd /c DIR $(cygpath -w hello) > Volume in drive C has no label. > Volume Serial Number is 6A15-FFB2 > > Directory of C:\cygwin\home\knellis\dev\c\hello > > File Not Found > $ That isn't really a failure, as "dir foo" in CMD.EXE should (and does) return file not found if file "foo" (no extension) does not exist. -- Erik -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: cygpath -w and .exe magic
On 26.08.2016 15:08, Nellis, Kenneth wrote: Dear Cygwin Community, $ ls -l total 60 -rwxr-x--- 1 knellis Domain Users 60927 Aug 26 08:57 hello.exe $ ./hello Hello, world! $ cygpath -w hello hello $ The purpose of cygpath -w, it seems to me, is to provide to Windows a valid path given a Posix path. Given executable file foo.exe, which Cygwin allows to be referenced simply as foo, should not: cygpath -w foo return: foo.exe instead of: foo ? Passing foo to a Windows application will certainly be a problem. I recognize this might be considered a change of scope for the program, but I think the tool should do the .exe magic rather than pass off this responsibility to the user. Food for thought. Sounds reasonable, but why shouldn't one have to say .exe if they mean .exe? That principle makes things easy. Just to illustrate a complication of that approach: Imagine you want to tell a program to safe its data to file foo and cygpath sees that there is a file Foo.exe, it will make the Windows program overwrite Foo.exe instead. And as far as i understand, the reason why Cygwin added this automatic addition of .exe is not to safe the user 4 key strokes, but because some programs cannot live without it - i remember Corinna saying that one cannot run Cygwin programs from cmd.exe if they don't have the .exe appended - and requiring to specify the exact name of an executable, i.e. with the .exe would break each and every script or executable that were written with only POSIX in mind. They say cp or bash, but not cp.exe or bash.exe . So Cygwin did this not to make it easy for users, but out of a dilemma: make Cygwin executables available to the Windows world vs. not breaking all POSIX programs. And if you use cygpath, you are writing code for the Windows environment, and then you can add the .exe where its needed i think. best regards, Herbert Stocker --Ken Nellis -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
RE: cygpath -w and .exe magic
From: cyg Simple > On 8/26/2016 10:35 AM, Nellis, Kenneth wrote: > > From: Herbert Stocker > >> On 26.08.2016 15:19, Lee Dilkie wrote: > >>> and break everyone who has existing code to take care of this? > >> > >> If it is done, it should be done as an additional option, i'd say. > > > > Of course a new option, duh! ☺ > > But my feeble brain is failing to imagine a case where this > > would break anything, unless the user solution would turn > > a returned foo.exe into foo.exe.exe, which seems doubtful. > > > > We still don't have a valid case of failure without the .exe. Until > that happens this is a no-go change. Here is a contrived example: $ cmd /c DIR $(cygpath -w hello.exe) Volume in drive C has no label. Volume Serial Number is 6A15-FFB2 Directory of C:\cygwin\home\knellis\dev\c\hello 08/26/2016 10:4760,927 hello.exe 1 File(s) 60,927 bytes 0 Dir(s) 218,673,360,896 bytes free $ cmd /c DIR $(cygpath -w hello) Volume in drive C has no label. Volume Serial Number is 6A15-FFB2 Directory of C:\cygwin\home\knellis\dev\c\hello File Not Found $ As I originally said, "Food for thought." I thought it might be worth a discussion. Appreciate the comments. --Ken Nellis
Re: cygpath -w and .exe magic
On 26 August 2016 at 07:08, Nellis, Kenneth wrote: > Dear Cygwin Community, > > $ ls -l > total 60 > -rwxr-x--- 1 knellis Domain Users 60927 Aug 26 08:57 hello.exe > $ ./hello > Hello, world! > $ cygpath -w hello > hello > $ > > The purpose of cygpath -w, it seems to me, is to provide > to Windows a valid path given a Posix path. > There is no requirement that the any part of the path presented to cygpath actually exists. Otherwise, you would not be able to pass the name of a non-existent file or directory to a windows only program that only understands strictly windows paths. To do what you want, cygpath would need two new options. One to specify that the path represents an existing filesystem object, and a second to specify that the path represents an executable file. Both of those options would require cygpath to inspect the file system, rather than current operations which return path format transformations or static information. Doug -- Doug Henderson, Calgary, Alberta, Canada -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: cygpath -w and .exe magic
On 8/26/2016 10:35 AM, Nellis, Kenneth wrote: > From: Herbert Stocker >> On 26.08.2016 15:19, Lee Dilkie wrote: >>> and break everyone who has existing code to take care of this? >> >> If it is done, it should be done as an additional option, i'd say. > > Of course a new option, duh! ☺ > But my feeble brain is failing to imagine a case where this > would break anything, unless the user solution would turn > a returned foo.exe into foo.exe.exe, which seems doubtful. > We still don't have a valid case of failure without the .exe. Until that happens this is a no-go change. -- cyg Simple -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
RE: cygpath -w and .exe magic
From: Herbert Stocker > On 26.08.2016 15:19, Lee Dilkie wrote: > > and break everyone who has existing code to take care of this? > > If it is done, it should be done as an additional option, i'd say. Of course a new option, duh! ☺ But my feeble brain is failing to imagine a case where this would break anything, unless the user solution would turn a returned foo.exe into foo.exe.exe, which seems doubtful. --Ken Nellis
Re: cygpath -w and .exe magic
On 8/26/2016 9:08 AM, Nellis, Kenneth wrote: > Dear Cygwin Community, > > $ ls -l > total 60 > -rwxr-x--- 1 knellis Domain Users 60927 Aug 26 08:57 hello.exe > $ ./hello > Hello, world! > $ cygpath -w hello > hello > $ > > The purpose of cygpath -w, it seems to me, is to provide > to Windows a valid path given a Posix path. > > Given executable file foo.exe, which Cygwin allows to be > referenced simply as foo, should not: cygpath -w foo > return: foo.exe > instead of: foo > ? > > Passing foo to a Windows application will certainly > be a problem. I recognize this might be considered a > change of scope for the program, but I think the tool > should do the .exe magic rather than pass off this > responsibility to the user. Food for thought. You say certainly but provide no real proof other than your assumptions. Cygpath has been performing for many years without anyone complaining about the missing .exe. I don't think we need to change it. -- cyg Simple -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: cygpath -w and .exe magic
On 26.08.2016 15:19, Lee Dilkie wrote: On 8/26/2016 9:08 AM, Nellis, Kenneth wrote: Dear Cygwin Community, $ ls -l total 60 -rwxr-x--- 1 knellis Domain Users 60927 Aug 26 08:57 hello.exe $ ./hello Hello, world! $ cygpath -w hello hello $ The purpose of cygpath -w, it seems to me, is to provide to Windows a valid path given a Posix path. Given executable file foo.exe, which Cygwin allows to be referenced simply as foo, should not: cygpath -w foo return: foo.exe instead of: foo ? Passing foo to a Windows application will certainly be a problem. I recognize this might be considered a change of scope for the program, but I think the tool should do the .exe magic rather than pass off this responsibility to the user. Food for thought. and break everyone who has existing code to take care of this? If it is done, it should be done as an additional option, i'd say. Herbert -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: cygpath -w and .exe magic
On 8/26/2016 9:08 AM, Nellis, Kenneth wrote: Dear Cygwin Community, $ ls -l total 60 -rwxr-x--- 1 knellis Domain Users 60927 Aug 26 08:57 hello.exe $ ./hello Hello, world! $ cygpath -w hello hello $ The purpose of cygpath -w, it seems to me, is to provide to Windows a valid path given a Posix path. Given executable file foo.exe, which Cygwin allows to be referenced simply as foo, should not: cygpath -w foo return: foo.exe instead of: foo ? Passing foo to a Windows application will certainly be a problem. I recognize this might be considered a change of scope for the program, but I think the tool should do the .exe magic rather than pass off this responsibility to the user. Food for thought. and break everyone who has existing code to take care of this? -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple