Mail Archives: cygwin/1997/07/14/12:37:52
In article <33C9D7BB DOT 6D8F AT wgn DOT net>, $Bill Luebkert <dbe AT wgn DOT net> wrote:
>Fergus Henderson wrote:
>>
>> franl AT world DOT std DOT omit-this DOT com (Francis Litterio) writes:
>>
>> >[Fergus Henderson wrote:]
>> >
>> >> Tim Newsham <newsham AT aloha DOT net> writes:
>> >>
>> >> >- cygwin does not properly transform command line path names across
>> >> > mount points. If I am on drive "D:" and type "vi /tmp/foo",
>> >> > I end up editing "D:\tmp\foo" and not "C:\tmp\foo" even though
>> >> > "/tmp" is on "C:". (vi is not compiled with cygwin).
>> >> > Cygwin should transform the path to "C:\tmp\foo" for the benefit
>> >> > of non-cygwin applications.
>> >>
>> >> How can cygwin know which arguments are pathnames and which are
>> >> just ordinary strings that should not be transformed in this manner?
>> >
>> >Cygwin can know because the strings that are pathnames are passed to
>> >open(), [...]
>>
>> No, in the case that Tim Newsham was referring to, "vi is not compiled
>> with cygwin", and so the strings that are pathnames are not passed
>> to cygwin's open().
>
>Maybe what he wants is for bash to transform the paths that
>fall on mountpoints. This seems fairly trivial.
>
>The mountpoints could be cached for speed, and the args could be
>parsed to see if any of them fall on a mounted filesystem.
>Not so tough. :)
>
>The path could then be converted to native filesystem coordinates.
>I assume this would be windows specific code (possibly others).
>
>One big advantage is that bash could then run a lot of non-
>cygwin apps with no problem. I like it. :)
Unless I'm missing something, this still doesn't deal the point that
Sergey raised.
How is bash supposed to know which argument is a filename? His example
was something like:
grep /tmp/foo /bar/file
Should /tmp/foo be translated to 'c:\tmp\foo' here? I don't think so.
There is no way that bash should automatically translate things for the
user. That would be decidedly "un-UNIX".
Someone else has suggested something like:
vi() {
/usr/bin/vi `cyg_to_native $*`
}
I think that is the only feasible alternative.
--
http://www.bbc.com/ cgf AT bbc DOT com "Strange how unreal
VMS=>UNIX Solutions Boston Business Computing the real can be."
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".
- Raw text -