X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FFilter.pm;h=10021a4eada0e886660e65b44e699451bd8fb452;hb=76027e074b381b0cdc76b3c23ac751802ee174fe;hp=64d05508a5311b63661aeab0095c7f9e3735aca2;hpb=2733a992ac8c3d315c110a2cc1984ea0a5e5d0ff;p=spider.git diff --git a/perl/Filter.pm b/perl/Filter.pm index 64d05508..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;