Brian Dessent <[EMAIL PROTECTED]> wrote around 28 Jun 2003 news:[EMAIL PROTECTED]: [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/