--- piespy.pl 2004-05-07 14:11:53.000000000 +0200 +++ piespy.pl 2004-05-07 14:19:07.000000000 +0200 @@ -759,21 +760,26 @@ return unless Irssi::settings_get_bool("piespy_count_mode"); + # Ignore servermodes. -- shasta + return if ($nick =~ /\./); + + # Ignore non-channel modes, like MODE nick +i. -- shasta + return unless ($msgtarget =~ /^[\!\&\+\#]/); # Make sure the graph is set up setup_graph($msgtarget, $server); $msgtarget = lc $msgtarget; - # Process the mode string my $cc = 0; - my $operation; + my $operation = "-"; foreach my $mchar (split //, $mode) { if ($mchar =~ /[+-]/) { $operation = $mchar; next; } - if ($mchar =~ /[eIblk]/) { shift @args; } + # These modes have arguments. -- shasta + if ($mchar =~ /[beIqdhk]/ || ($mchar eq "l" && $operation eq "+")) { shift @args; } if ($mchar ne 'v' and $mchar ne 'o') { next; } # XXX: $operation ? Yes, at first you'd shout "decrease" for '-', but then # again, it proves that there is _some_ social binding between the two