From c45214ced7885f5776d811f0fdd01e0e051811fe Mon Sep 17 00:00:00 2001 From: Elijah Perrault Date: Tue, 8 Feb 2011 23:21:05 -0700 Subject: [PATCH] Added CURRENT to chanstatus channel options for channel the command is being used for/in. --- src/API/Std.pm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/API/Std.pm b/src/API/Std.pm index 1530351..f843630 100644 --- a/src/API/Std.pm +++ b/src/API/Std.pm @@ -378,11 +378,17 @@ sub match_user my ($ccst, $ccnm) = split m/[:]/sm, ($ulhp{$uhk})[0][0]; ## no critic qw(RegularExpressions::RequireExtendedFormatting) my $svr = $ulhp{net}[0]; if (defined $Auto::SOCKET{$svr}) { - foreach my $bcj (@{ $Parser::IRC::botchans{$svr} }) { - if (API::IRC::match_mask($bcj, $ccnm)) { - API::IRC::names($svr, $bcj); - if (defined $Parser::IRC::chanusers{$svr}{$bcj}{$user{nick}}) { - if ($Parser::IRC::chanusers{$svr}{$bcj}{$user{nick}} =~ m/($ccst)/sm) { return $userkey; } ## no critic qw(RegularExpressions::RequireExtendedFormatting) + if ($ccnm eq 'CURRENT' and defined $user{chan}) { + if (defined $Parser::IRC::chanusers{$svr}{$user{chan}}{$user{nick}}) { + if ($Parser::IRC::chanusers{$svr}{$user{chan}}{$user{nick}} =~ m/($ccst)/sm) { return $userkey; } ## no critic qw(RegularExpressions::RequireExtendedFormatting) + } + } + else { + foreach my $bcj (keys %{ $Parser::IRC::botchans{$svr} }) { + if (API::IRC::match_mask($bcj, $ccnm)) { + if (defined $Parser::IRC::chanusers{$svr}{$bcj}{$user{nick}}) { + if ($Parser::IRC::chanusers{$svr}{$bcj}{$user{nick}} =~ m/($ccst)/sm) { return $userkey; } ## no critic qw(RegularExpressions::RequireExtendedFormatting) + } } } }