package xm::umlaut;
use strict;
use xm::o;

sub DESC
{"
  will look for twochar markup, then look into xm{umlaut}, and if
  found there, replace the umlaut with the coresponding text.
"}

$xm{umlaut} = 
{
    ae => "ä",	Ae => "Ä",
    ee => "ë",	Ae => "Ë",
    oe => "ö",	Oe => "Ö",
    ue => "ü",	Ue => "Ü",
    ss => "ß",    Ss => "ss",  SS => "SS",
    ai => "á",   Ai => "&Aacute",
    ei => "é",   Ei => "&Eacute",
    oi => "ó",   Oi => "&Oacute",
    ui => "ú",   Ui => "&Uacute",
    yi => "ý",   Yi => "&Yacute",
    mu => "µ",    Yi => "&Yacute",
};

sub DO
{
    my $in = shift;

    my $x = sub {
	my ($a,$b,$c) = @_;
	return $a.$b.$c if not exists $xm{umlaut}{$b};
	return $xm{umlaut}{$b};
    };

    # whatever
    $in =~ s{(<)(\w.)(>)} {&$x($1,$2,$3)}gsex;

    return $in;
} 

sub ARGS { return    xm::o::args_stdin(@_, DESC); }
sub main { return DO(xm::o::args_stdin(@_, DESC)); }


1;