projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix filter error handling and error counting
[spider.git]
/
perl
/
Filter.pm
diff --git
a/perl/Filter.pm
b/perl/Filter.pm
index 64d05508a5311b63661aeab0095c7f9e3735aca2..10021a4eada0e886660e65b44e699451bd8fb452 100644
(file)
--- 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');
# 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;
$line = lc $line;
@@
-558,7
+559,7
@@
sub parse
}
return (1, $dxchan->msg('e20', $lasttok)) unless $found;
} else {
}
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;
return (1, $dxchan->msg('filter2', $s));
}
$lasttok = $tok;
@@
-605,8
+606,8
@@
sub cmd
$filter->{$fn}->{$type}->{user} = $user;
$filter->{$fn}->{$type}->{asc} = $s;
$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;
$r = $filter->write;
return (1,$r) if $r;