httpd-test-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: shell_ready function
Date Wed, 18 Aug 2004 18:14:37 GMT
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:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Mime
View raw message