From: Jamie Cameron Date: Fri, 21 Oct 2011 22:42:11 +0000 (-0700) Subject: Handle " and ' in comments X-Git-Url: https://iam.tj/gitweb/gitweb.cgi?p=webmin.git;a=commitdiff_plain;h=b076700e326bced87b1dea663da05a61730c9a82 Handle " and ' in comments https://sourceforge.net/tracker/?func=detail&atid=117457&aid=3426769&group_id=17457 --- diff --git a/firewall/firewall-lib.pl b/firewall/firewall-lib.pl index b5b9cec4..8be8dbe5 100755 --- a/firewall/firewall-lib.pl +++ b/firewall/firewall-lib.pl @@ -98,6 +98,8 @@ while() { local @vl; while($rule->{'args'} =~ s/\s+(!?)\s*($a)\s+(!?)\s*("[^"]*")(\s+|$)/ / || + $rule->{'args'} =~ + s/\s+(!?)\s*($a)\s+(!?)\s*('[^']*')(\s+|$)/ / || $rule->{'args'} =~ s/\s+(!?)\s*($a)\s+(!?)\s*(([^ \-!]\S*(\s+|$))+)/ / || $rule->{'args'} =~ @@ -160,7 +162,9 @@ foreach $r (@{$_[0]->{'rules'}}) { foreach $ag (@al) { local $n = shift(@$ag); local @w = ( $n ? ( $n ) : (), $a, @$ag ); - @w = map { $_ =~ /\s/ ? "\"$_\"" : $_ } @w; + @w = map { $_ =~ /'/ ? "\"$_\"" : + $_ =~ /"/ ? "'".$_."'" : + $_ =~ /\s/ ? "\"$_\"" : $_ } @w; $line .= " ".join(" ", @w); } }