Geoffrey Young wrote:
Joe Orton wrote:
Does the quote escaping really work in this function?
hmm, it doesn't look like it does. I think this was part of some work that
stas and ken were doing, though, and IIRC it was some win32 command line
thing. but I could be wrong.
It confuses emacs
font-lock mode which doesn't see a closing quote so thinks the rest of
the file is part of the string. This fixes at least the latter:
- $arg =~ s/"/\"/g;
+ $arg =~ s/"/\\"/g;
that looks better, but I'm not sure it's right either - if the input is
already escaped then you've (both) over-quoted (if the first worked at all,
that is :) so, you look to be fine here if pre-quoted input is forbidden or
not expected, but not so if it's already quoted, in which case something
like this is better:
$arg =~ s!([^\\])"!$1\\"!g;
the attached script runs through a few different regex and input
combinations for visual inspection. hopefully that will help sort this
issue out a bit (or the original author will clear things up ;)
Yeah, I guess it's the best to ask Ken, it worked for him.
Jon's looks better, and Geoff's is even better,
I've checked CPAN and found
http://search.cpan.org/src/ROSCH/String-ShellQuote-1.00/ShellQuote.pm
but it probably is not what you are after, right?
Either way +1 to Geoff's version.
and here is the optimized version of Geoff's one:
sub shell_ready_stas {
my $arg = shift;
$arg =~ s!\\?"!\\"!g;
return qq["$arg"];
}
:)
--
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com