From c7d1102c61fd3efe8d46c6b0d714d6de2760db5a Mon Sep 17 00:00:00 2001 From: Arnavion Date: Sat, 22 Jun 2013 22:06:49 -0700 Subject: [PATCH] perl: Fixed get_list('networks') to work with new servlist.conf syntax for autojoin channels. --- .../perl/lib/Xchat/List/Network/AutoJoin.pm | 30 +++++++++---------- plugins/perl/lib/Xchat/List/Network/Entry.pm | 5 ++-- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/plugins/perl/lib/Xchat/List/Network/AutoJoin.pm b/plugins/perl/lib/Xchat/List/Network/AutoJoin.pm index 16036a9d..8b4e40d2 100644 --- a/plugins/perl/lib/Xchat/List/Network/AutoJoin.pm +++ b/plugins/perl/lib/Xchat/List/Network/AutoJoin.pm @@ -10,28 +10,26 @@ use overload sub new { my $class = shift; - my $line = shift; my @autojoins; - if ( $line ) { - my ( $channels, $keys ) = split / /, $line, 2; - my @channels = split /,/, $channels; - my @keys = split /,/, ($keys || ''); - - for my $channel ( @channels ) { - my $key = shift @keys; - $key = '' unless defined $key; - - push @autojoins, { - channel => $channel, - key => $key, - }; - } - } return bless \@autojoins, $class; } +sub add { + my $self = shift; + + my $line = shift; + + my ( $channel, $key ) = split /,/, $line, 2; + $key = $key || ''; + + push @$self, { + channel => $channel, + key => $key, + }; +} + sub channels { my $self = shift; diff --git a/plugins/perl/lib/Xchat/List/Network/Entry.pm b/plugins/perl/lib/Xchat/List/Network/Entry.pm index e40b48bd..6f2aa925 100644 --- a/plugins/perl/lib/Xchat/List/Network/Entry.pm +++ b/plugins/perl/lib/Xchat/List/Network/Entry.pm @@ -39,6 +39,8 @@ sub parse { my @fields = split /\n/, $data; chomp @fields; + $entry->{ autojoins } = Xchat::List::Network::AutoJoin->new(); + for my $field ( @fields ) { SWITCH: for ( $field ) { /^($letter_key_re)=(.*)/ && do { @@ -47,8 +49,7 @@ sub parse { }; /^J.(.*)/ && do { - $entry->{ autojoins } = - Xchat::List::Network::AutoJoin->new( $1 ); + $entry->{ autojoins }->add( $1 ); }; /^F.(.*)/ && do {