X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FFilter.pm;h=10021a4eada0e886660e65b44e699451bd8fb452;hb=766014807e2521cc60a219c6eda5b49d13ffc70f;hp=bf19719fd41d9fc3ab7df1635ccf486c1a8df7eb;hpb=1935ba236a7ef4999bceb00b6faf28038f3b052e;p=spider.git diff --git a/perl/Filter.pm b/perl/Filter.pm index bf19719f..10021a4e 100644 --- a/perl/Filter.pm +++ b/perl/Filter.pm @@ -416,7 +416,8 @@ sub parse # check the line for non legal characters dbg("Filter::parse line: '$line'") if isdbg('filter'); - return ('ill', $dxchan->msg('e19')) if $line !~ /{.*}/ && $line =~ /[^\s\w,_\.:\-\*\/\(\)\$!]/; + my @ch = $line =~ m|([^\s\w,_\.:\/\-\*\(\)\$!])|g; + return ('ill', $dxchan->msg('e19', join(' ', @ch))) if $line !~ /{.*}/ && @ch; $line = lc $line; @@ -558,7 +559,7 @@ sub parse } return (1, $dxchan->msg('e20', $lasttok)) unless $found; } else { - my $s = '{' . decode_regex($tok) . '}' if $tok =~ /^{.*}$/; + $s = $tok =~ /^{.*}$/ ? '{' . decode_regex($tok) . '}' : $tok; return (1, $dxchan->msg('filter2', $s)); } $lasttok = $tok; @@ -605,8 +606,8 @@ sub cmd $filter->{$fn}->{$type}->{user} = $user; $filter->{$fn}->{$type}->{asc} = $s; - $r = $filter->compile($fn, $type); - return (1,$r) if $r; + $r = $filter->compile($fn, $type); # NOTE: returns an ERROR, therefore 0 = success + return (0,$r) if $r; $r = $filter->write; return (1,$r) if $r;