This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: allow executing a path in backslash notation


On 10.03.2010 11:03, Ilya Beylin wrote:
The problem is that DOS paths are treated differently, even within the
same program.
Take for instance, bash:

$ builtin test -x "$WINDIR\system32\cmd.exe"&&  echo ok
yes
$ builtin exec "$WINDIR\system32\cmd.exe" /C echo ok
-bash: exec: C:\WINDOWS\system32\cmd.exe: not found

That makes a lot of headache both for users and for programmers who
have to remember about all such special cases
Not really for programmers, as Corinna has demonstrated, unless you refer to shell script programmers.
So there's fewer special situations in which this might be relevant, I think.
And the limitation doesn't need "exec" to be involved but applies to "normal" invocation as well as file name expansion, too.
Surprising (and the trigger of my response) is the observation that a single "/" substituted for one backslash, i.e. a mixed style path name, changes the situation:


$ echo D:\\cygwin17\\bin\\min*.exe
D:\cygwin17\bin\min*.exe
$ echo D:\\cygwin17\\bin/min*.exe
D:\cygwin17\bin/mined.exe D:\cygwin17\bin/mintty.exe

So maybe for consistency it might be worth patching bash to fully support DOS style paths?
------
Thomas


Cheers
Ilya

On 10 March 2010 10:25, Corinna Vinschen<corinna-cygwin@cygwin.com> wrote:
On Mar 9 13:47, Ilguiz Latypov wrote:
The bottom line is that if you want to use MS-DOS
paths, then use a MinGW or DJGPP version of make.exe. make.exe is not
going to be patched.
The patch was to cygwin1.dll, but I am not insisting.
Trouble is, I don't even see the problem.  Executing a file in DOS
notation is already possible:

  bash$ cat<<  EOF>  exec.c
  #include<unistd.h>

  int
  main (int argc, char **argv)
  {
    char *args[] = { argv[1], "abc", 0};
    execv (argv[1], args);
    return 1;
  }
  EOF
  bash$ gcc -o exec exec.c
  bash$ ./exec /bin/echo
  abc
  bash$ ./exec C:\\cygwin\\bin\\echo
  abc


Corinna


--
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

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



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]