Subject: Re: cygnus bugs
From: [email-masked] (Chris Faylor)

14 Jul 1997 12:37:52 -0700
Approved: [email-masked]
Distribution: cygnus
Message-ID: <[email-masked]>
References: <[email-masked]>
    <[email-masked]>
    <[email-masked]> <[email-masked]>
Reply-To: [email-masked]
X-Newsreader: trn 4.0-test57 (27 Apr 97)
Original-To: [email-masked]
X-Mailer: Perl5 Mail::Internet v1.28
Original-Sender: [email-masked]

In article <[email-masked]>, $Bill Luebkert <[email-masked]> wrote:
>Fergus Henderson wrote:
>> 
>> [email-masked] (Francis Litterio) writes:
>> 
>> >[Fergus Henderson wrote:]
>> >
>> >> Tim Newsham <[email-masked]> 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/	[email-masked]			"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
"[email-masked]" with one line of text: "help".