Subject: Re: example needed pls: `cygpath -c <HANDLE>'
From: Soren A <[email-masked]>
To: [email-masked]
Date: Sat, 28 Jun 2003 18:46:46 +0000 (UTC)

Brian Dessent <[email-masked]> wrote around 28 Jun 2003
news:[email-masked]: 
[Soren A.:]
>> I am trying to finish a test script that uses ActivePerl to call
>> `cygpath` from itself (a system call, by open()-ing a pipe to capture
>> the output of the tool ...
>> 
>>   {... stuff ...}
>>   open(CTH, '-|', "C:/cygwin/bin/cygpath $MS_path_filename")
>>     or die "Could not open() call to 'cygpath', what is up?";
>>   $cygstyle_path = <CTH>;
>>   chomp $cygstyle_path;
>>   {... stuff ...}
> 
> If $MS_path_filename is indeed a regular Windows filename (with
> backslashes) you will need to either use quotemeta() or s!\\!/!g
> because singular backslashes will be removed during interpolation.

I know this. Already checked that what's being fed into `cygpath' is 
kosher.

I've spent 4+ hours debugging this script.

> Here's a little thing I cooked up that I find very useful, I call it
> dodos.  It lets you run any DOS/Windows program and call it with unix
> arguments.  For example, you could type "dodos notepad /etc/aliases"
> or "dodos notepad /etc/hosts.*" and you'd get what you expect.
> 
> #!/usr/bin/perl -w
> 
> my @newargs = $ARGV[0];
> 
> foreach my $arg (@ARGV[1..$#ARGV]) {
>         my $foo = quotemeta($arg);
>         $foo = `cygpath -wsa $foo 2>/dev/null`;
>         chomp $foo;
>         push @newargs, $foo;
> }
> 
> exec @newargs;
> 

Heh. Looks like a candidate for a Schwartzian Transform, or the Orcish 
Manuever, or something :-/. But good anyway. I'll add it to my toolset.

-- 
"So, tell me, my little one-eyed one, on what poor, pitiful,
defenseless planet has my MONSTROSITY been unleashed?"
                       - Dr. Jumba, Disney's "Lilo & Stitch"
OpenPGP Key at http://savannah.gnu.org/people/viewgpg.php?user_id=6050

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/