summaryrefslogtreecommitdiffstats
path: root/scripts/tabcompletenick.pl
diff options
context:
space:
mode:
authorJari Matilainen2015-11-25 11:42:09 +0100
committerJari Matilainen2015-11-25 11:42:09 +0100
commit6ff89a0ac5f3fb4892081165bbe0304e688b2d39 (patch)
tree2e17e1d82faeb18e311635a41123b90527628afb /scripts/tabcompletenick.pl
parent4775c0a652fab0608acc57788a060f390dacea60 (diff)
downloadscripts.irssi.org-6ff89a0ac5f3fb4892081165bbe0304e688b2d39.tar.bz2
Fixed problems reported by perlcritic
Diffstat (limited to 'scripts/tabcompletenick.pl')
-rw-r--r--scripts/tabcompletenick.pl62
1 files changed, 33 insertions, 29 deletions
diff --git a/scripts/tabcompletenick.pl b/scripts/tabcompletenick.pl
index deca5af..a8c0295 100644
--- a/scripts/tabcompletenick.pl
+++ b/scripts/tabcompletenick.pl
@@ -7,9 +7,13 @@
# from the start again
# - /set completion_keep_publics decides how many nicks to remember
-use Irssi;
+use strict;
+use warnings;
+use Irssi::TextUI;
use Data::Dumper;
+{ package Irssi::Nick; }
+
my $VERSION = '1.0';
my %IRSSI = (
authors => 'vague',
@@ -21,20 +25,20 @@ my %IRSSI = (
changed => "24 Nov 16:00:00 CET 2015",
);
-my $lastspokehash = {};
+my $lastspokehash;
my $expand_next = 0;
Irssi::signal_add_first('gui key pressed', sub {
my ($key) = @_;
- my $prompt = Irssi::parse_special('$L');
- my $pos = Irssi::gui_input_get_pos();
- $server = Irssi::active_server();
- $witem = Irssi::active_win()->{active};
+ return unless exists Irssi::active_win->{active} && Irssi::active_win->{active}->{type} eq "CHANNEL";
- return unless $witem->{type} eq "CHANNEL";
+ my $prompt = Irssi::parse_special('$L');
+ my $pos = Irssi::gui_input_get_pos();
+ my $witem = Irssi::active_win()->{active};
+ my $server = Irssi::active_server();
- my $arr = $lastspokehash{$server->{tag}}->{$witem->{name}};
+ my $arr = $lastspokehash->{$server->{tag}}->{$witem->{name}} || [];
if(!$expand_next) {
return unless $key == 9;
@@ -49,7 +53,7 @@ Irssi::signal_add_first('gui key pressed', sub {
return;
}
- if($expand_next < scalar @{$arr}) {
+ if($expand_next < @$arr) {
$expand_next++;
} else {
$expand_next = 0;
@@ -71,43 +75,44 @@ Irssi::signal_add_first('gui key pressed', sub {
sub expando_lastspoke {
my ($server, $witem) = @_;
- $server = Irssi::active_server();
- $witem = Irssi::active_win()->{active};
+ $server = Irssi::active_server() unless $server;
+ $witem = Irssi::active_win()->{active} unless $witem;
return '' if $expand_next == 0;
return '' unless ref($witem) eq 'Irssi::Irc::Channel';
- my $arr = $lastspokehash{$server->{tag}}->{$witem->{name}};
- return '' unless @{$arr};
- return '' unless $expand_last <= $arr;
- return @{$lastspokehash{$server->{tag}}->{$witem->{name}}}[$expand_next - 1];
+ my $arr = $lastspokehash->{$server->{tag}}->{$witem->{name}};
+ return '' unless @$arr;
+ return '' unless $expand_next <= @$arr;
+
+ return @{$lastspokehash->{$server->{tag}}->{$witem->{name}}}[$expand_next - 1];
}
sub act_public {
- my ($server, $msg, $nick, $address, $witem) = @_;
+ my ($server, $msg, $nick, $address, $target) = @_;
- return if $witem eq '';
+ return if $target eq '';
my $i = 0;
- my $arr = $lastspokehash{$server->{tag}}->{$witem};
- foreach(@{$arr}) {
+ my $arr = $lastspokehash->{$server->{tag}}->{$target};
+ foreach(@$arr) {
if($_ eq $nick) {
- splice @{$arr}, $i, 1;
+ splice @$arr, $i, 1;
last;
}
$i++;
}
- unshift @{$lastspokehash{$server->{tag}}->{$witem}}, $nick;
- splice @{$lastspokehash{$server->{tag}}->{$witem}}, Irssi::settings_get_int('completion_keep_publics');
+ unshift @{$lastspokehash->{$server->{tag}}->{$target}}, $nick;
+ splice @{$lastspokehash->{$server->{tag}}->{$target}}, Irssi::settings_get_int('completion_keep_publics');
}
sub _part {
my ($server, $channel, $nick) = @_;
if(!$channel) {
- foreach my $chan (keys %{$lastspokehash{$server->{tag}}}) {
- my $arr = $lastspokehash{$server->{tag}}->{$chan};
+ foreach my $chan (keys %{$lastspokehash->{$server->{tag}}}) {
+ my $arr = $lastspokehash->{$server->{tag}}->{$chan};
my $i = 0;
foreach(@{$arr}) {
if($_ eq $nick) {
@@ -120,7 +125,7 @@ sub _part {
}
}
else {
- my $arr = $lastspokehash{$server->{tag}}->{$channel};
+ my $arr = $lastspokehash->{$server->{tag}}->{$channel};
my $i = 0;
foreach(@{$arr}) {
if($_ eq $nick) {
@@ -132,8 +137,7 @@ sub _part {
}
}
- delete $lastspokehash{$server->{tag}}->{$channel} unless @{$lastspokehash{$server->{tag}}->{$channel}};
- delete $lastspokehash{$server->{tag}} unless keys %{$lastspokehash{$server->{tag}}};
+ delete $lastspokehash->{$server->{tag}} unless keys %{$lastspokehash->{$server->{tag}}};
}
Irssi::signal_add_first('message quit', sub {
@@ -154,8 +158,8 @@ Irssi::signal_add_first('message kick', sub {
Irssi::signal_add_first('message nick', sub {
my ($server, $newnick, $oldnick, $address) = @_;
- foreach my $chan (keys %{$lastspokehash{$server->{tag}}}) {
- my $arr = $lastspokehash{$server->{tag}}->{$chan};
+ foreach my $chan (keys %{$lastspokehash->{$server->{tag}}}) {
+ my $arr = $lastspokehash->{$server->{tag}}->{$chan};
my $i = 0;
foreach(@{$arr}) {
if($_ eq $oldnick) {