On Wed, 4 Jun 2003, Randall R Schulz wrote:
> At 10:06 2003-06-04, Igor Pechtchanski wrote:
> >On Wed, 4 Jun 2003, Lapo Luchini wrote:
> >
> > > ...
> > >
> > > http://cygwin.com/cygwin-ug-net/using-utils.html#CYGPATH
> > >
> > > NEWARGS=""
> > > for arg in $@ ;
> > > do
> > > if [ -e "${arg}" ]; then
> > > NEWARGS="${NEWARGS} `cygpath -p -w "$arg"`"
> > > else
> > > NEWARGS="${NEWARGS} $arg"
> > > fi
> > > done
> >
> >Lapo,
> >
> >Note that the above won't work correctly if the program is expected to
> >create the file with a given name... IMO, there is no way of writing a
> >generic wrapper script without knowing anything about program parameters.
> > Igor
>
>
> Igor,
>
> Strictly speaking, that's true. Certainly Lapo's script fragment is too
> simple-minded to work in any kind of general setting.
>
> However for many purposes it's feasible to write some simple-minded
> heuristics that make the determination about when and how to apply
> "cygpath." I currently use a BASH script that uses a simple "case"
> statement to paper over the Cygwin / Windows interface for invoking the
> Java 2 SDK tools. The case statement's glob patterns detect whether any
> given argument is (probably) a file name or PATH-like entity and then
> applies cygpath as necessary. It can be fooled, of course, but in
> practice it works fine for me.
>
> Randall Schulz
Randall,
I agree, Java is not too hard. I believe I've posted the wrapper script
that I used at one point or another. Certainly the parameters to Java
itself can be recognized exactly. It's also easy enough to decide that
anything in the program arguments with a '/' in it is a filename, and
convert it accordingly. WFM (tm).
I was talking about the general case, for an unknown Win32 application.
Igor