# Please adjust which windows should be affected at the NOTE comment below!
use strict;
use vars qw($VERSION %IRSSI);

my $signal_out = 0;

use Irssi;
$VERSION = '2';
%IRSSI = (
	authors     => 'Andreas Henriksson',
	contact     => 'andreas@fatal.se',
	name        => 'sedvorak',
	description => 'Convert typed aa,ae,oe to actual swedish characters.',
	license     => 'WTFPL v2 (Public Domain)',
);

sub sedvorak_out {
	my $emitted_signal = Irssi::signal_get_emitted();
	my ($msg, $server, $witem) = @_;

	if ($signal_out) {
		return;
	}

	# NOTE:
	# only do this if we are in a channel ending with .se
	# or if we are in the bitlbee control channel.
	if ( $witem && $witem->{type} eq "CHANNEL"
			&& ($witem->{name} =~ m/^#.*\.se$/
					|| $witem->{name} eq "&bitlbee"))   {
		eval "\$msg =~ s/aa/å/g;";
		eval "\$msg =~ s/ae/ä/g;";
		eval "\$msg =~ s/oe/ö/g;";
		eval "\$msg =~ s/Aa/Å/g;";
		eval "\$msg =~ s/Ae/Ä/g;";
		eval "\$msg =~ s/Oe/Ö/g;";

		$signal_out = 1;
				
		Irssi::signal_emit("$emitted_signal", $msg, $server, $witem );
		Irssi::signal_stop();

		$signal_out = 0;
	}
}

#output filters:
Irssi::signal_add_first('send command', 'sedvorak_out');
#Irssi::signal_add_first('message own_public', 'sedvorak_out');
#Irssi::signal_add_first('message own_private', 'sedvorak_out');
