diff options
author | berkeviktor@aol.com <berkeviktor@aol.com> | 2011-02-28 19:21:36 +0100 |
---|---|---|
committer | berkeviktor@aol.com <berkeviktor@aol.com> | 2011-02-28 19:21:36 +0100 |
commit | 58c03db835e9bb1f5d4f8525b6bbdb441f2c7c71 (patch) | |
tree | 1949c64c9cf7bca8129a8807437b6fe4e0c425e8 /plugins/perl | |
parent | d3330fbe6f3cdcf3cc43550bb61c3393eb7cd794 (diff) |
update xchat to r1492
Diffstat (limited to 'plugins/perl')
-rw-r--r-- | plugins/perl/lib/Xchat.pm | 15 | ||||
-rw-r--r-- | plugins/perl/lib/Xchat/List/Network.pm | 1 |
2 files changed, 12 insertions, 4 deletions
diff --git a/plugins/perl/lib/Xchat.pm b/plugins/perl/lib/Xchat.pm index 74914882..1849789b 100644 --- a/plugins/perl/lib/Xchat.pm +++ b/plugins/perl/lib/Xchat.pm @@ -212,19 +212,26 @@ sub hook_print { my $cb = $callback; $callback = sub { my @args = @{$_[0]}; + my $event_data = $_[1]; + my $event_name = $event; my $last_arg = @args - 1; - my @new = $cb->( \@args, $_[1], $event ); + my @new = $cb->( \@args, $event_data, $event_name ); + + # allow changing event by returning the new value + if( @new > @args ) { + $event_name = pop @new; + } # a filter can either return the new results or it can modify # @_ in place. - if( @new ) { - emit_print( $event, @new[ 0 .. $last_arg ] ); + if( @new == @args ) { + emit_print( $event_name, @new[ 0 .. $last_arg ] ); return EAT_ALL; } elsif( join( "\0", @{$_[0]} ) ne join( "\0", @args[ 0 .. $last_arg ] ) ) { - emit_print( $event, @args[ 0 .. $last_arg ] ); + emit_print( $event_name, @args[ 0 .. $last_arg ] ); return EAT_ALL; } diff --git a/plugins/perl/lib/Xchat/List/Network.pm b/plugins/perl/lib/Xchat/List/Network.pm index da2f52dd..5755ede9 100644 --- a/plugins/perl/lib/Xchat/List/Network.pm +++ b/plugins/perl/lib/Xchat/List/Network.pm @@ -13,6 +13,7 @@ sub get { (!defined $last_modified || $last_modified != -M $server_file ) ) { $last_modified = -M _; + @servers = (); if( open my $fh, "<", $server_file ) { local $/ = "\n\n"; while( my $record = <$fh> ) { |