write_debug(undef, "found $g->{'TYPE'} $g->{'NAME'}");
if ($type eq $g->{'TYPE'}) {
push(@g, $g);
+ $g->setio(sub {Irssi::print(shift)});
} else {
write_irssi(undef, '%s has wrong type (got %s, expected %s)', $p, $g->{'TYPE'}, $type);
delete($INC{$p});
package Base;
use strict;
-use Irssi;
use Data::Dumper;
sub new {
my $class = shift;
- my $self = {'_DEBUG' => 0};
+ my $self = {'_DEBUG' => 0, '_OUT' => sub {}};
bless($self, $class);
$t = sprintf(shift(@_), @_);
$t =~ s/%/%%/g;
- Irssi::print($t);
+ $self->{'_OUT'}->($t);
}
sub debug {
}
}
+sub setio {
+ my $self = shift;
+ my $io = shift;
+
+ $self->{'_OUT'} = $io;
+}
+
sub getconfstr {
my $self = shift;
my $s = 'Options for ' . $self->{'NAME'} . ":\n";