diff options
| author | Jari Matilainen | 2015-11-25 11:42:09 +0100 |
|---|---|---|
| committer | Jari Matilainen | 2015-11-25 11:42:09 +0100 |
| commit | 6ff89a0ac5f3fb4892081165bbe0304e688b2d39 (patch) | |
| tree | 2e17e1d82faeb18e311635a41123b90527628afb /scripts/tabcompletenick.pl | |
| parent | 4775c0a652fab0608acc57788a060f390dacea60 (diff) | |
| download | scripts.irssi.org-6ff89a0ac5f3fb4892081165bbe0304e688b2d39.tar.bz2 | |
Fixed problems reported by perlcritic
Diffstat (limited to 'scripts/tabcompletenick.pl')
| -rw-r--r-- | scripts/tabcompletenick.pl | 62 |
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) { |
