use strict;
use vars qw($VERSION %IRSSI);

my $debug = 0;
my $signal_out = 0;

use Irssi;
$VERSION = '1';
%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;
	}

	if ($debug) {
		Irssi::print("signal emitted: $emitted_signal");
	}

	if ( $witem && $witem->{type} eq "CHANNEL" && $witem->{name} eq "#linux.se") {
		if ($debug) {
			Irssi::print("outgoing to " . $witem->{name} . " contains accent: $msg");
		}
		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;";

		if ($debug) {
			Irssi::print("outgoing fixed: $msg");
		}

		$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');

