#!/usr/local/bin/perl -p
# Ãéþñãïò Âåôïýëçò 1997...

unless(/^[a-zA-Z]+: /) {

s/([A-Z])[089]([A-Z])/$1È$2/g;
s/([Á-Æa-z]?)[089]([a-z]+)/$1è$2/g;
s/([A-Z])3([A-Z])/$1Î$2/g;
s/([Á-Æa-z]?)3([a-z]+)/$1î$2/g;
s/3([aehioyuw])/î$1/g;
s/3([AEHIOYUW])/Î$1/g;
s/([aehiow])3/$1î/g;
s/([AEHIOW])3/$1Î/g;
s/[089]('?)([aehilorw])/è$1$2/g;
s/[089]('?)([AEHILORW])/È$1$2/g;
s/([aehilorfw])[089]/$1è/g;
s/([AEHILORFW])[890]/$1è/g;
s/ps/ø/g; s/PS/Ø/g; s/kst/êóô/g; s/ks/î/g; s/kst/ÊÓÔ/g; s/KS/Î/g;
s/vw/íù/g; 
s/th([aeioyw])/è$1/g;
s/TH({AEIOYW])/È$1/g;
s/tnv/ôçí/g; s/nn(\s)/íç$1/g;  s/(\s)n(\s)/$1ç$2/g;
# To j ìðïñåß íá åßíáé î Þ è (åãþ)
if(/è/ || /È/) {y/jJ/îÎ/;}

y/abgdezhiklmorstfwABGDEZHIKLMNORSTFVW/áâãäåæçéêëìïñóôöùÁÂÃÄÅÆÇÉÊËÌÍÏÑÓÔÖÙÙ/;

#  ôï p ìðïñåé íá åéíáé  ð Þ ñ
s/ìp/ìð/g;
s/ôp/ôñ/g;
s/^p([ëíñô])/ð$1/g;
if(/ñ/ || /Ñ/) {y/pP/ðÐ/;}


# ôï u ìðïñåé íá åéíáé è Þ õ 
if(/[èÈ]/) {y/uU/õÕ/;}  
s/ïu([ìë])/ïõ$1/g; 

if (   /u[âãäæèêîðóôö÷ø'-:;,\. ]/ ||
       /[âãäæèêìîðôø]u/  ||
       /u[ëìíñ][âãäæèêëìíîðñóôö÷ø]/ ||
       /[âãäæèêëìíîðñóôö÷ø][ëìíñóö÷]u/ ||
       /u$/ ||
       /[ëìíñóö÷]u[ëìíñ]/
) {s/u/õ/g;} 



# ôï y ìðïñåé íá åéíáé ø Þ õ . Ôï åßäá êáé ãéá ã!!.

if (/y$/ ||
    /y[pâãäæèêëìíîðñóôö÷ø'-:,\. ]/ || 
    /[âãäæèêíîðñóôö÷ø]y/ || 
    /[pâãäæèêëìíîðñóôö÷ø][ëì]y/
) {s/y/õ/g;}


# ôï v ìðïñåé íá åéíáé í Þ ù. Ôï V ðÜíôá åßíáé Ù. 
if(/[áåÁÅ]v[áäåçéïôùÁÄÅÇÉÏÔÙ]/) {s/í/í/g;} 
s/([âãäæèêëìíîðñóôö÷ø])v([:'-,\. ])/$1ù$2/g;
if(/ù/) {s/v/í/g;}

# ôï n ìðïñåé íá åéíáé ç Þ í Þ ð 

if(/[ÁÅÇÉÏÕÙáåçéïõù]n[áåçéïõù]/) {s/n/í/g;}

if( /[âãäæèêëìíîðñóôö÷ø]n[âãäæèêëìíîðñóôö÷ø]/ ||
     /[âãäæèêëìíîðñóôö÷ø]n[:'-,\. ]/ ||
     /[âãäæèêëìíîðñóôö÷ø]n$/ || 
     /[:'-,\. ]n[âãäæèêëìíîðñóö÷ø]/ ||
     /^n[âãäæèêëìíîðñóö÷ø]/ ||
     /n[âãäæèêëìíîðñóôö÷ø][âãäæèêëìíîðñóôö÷ø]/ ||
     /[âãäæèêëìíîðñóôö÷ø][âãäæèêëìíîðñóôö÷ø]n/
) {s/n/ç/g};

if ( /n[áåçéïõù][áåçéïõù]/ ) {s/n/í/g;}
if ( /ï[uõ]n$/) {s/n/í/g;}
if(/[ïâãäæèêëìíîðñóôö÷ø]([uõy])([vnv])[áåçéïõù]/) {s/$1/õ/g; s/$2/í/g;}

#s/[ïâãäæèêëìíîðñóôö÷ø]([uõy])([vnv])[áåçéïõù]/$1õí$2/g;
#if( /í/) {s/n/í/g;}



# Ôï c ìðïñåß íá åßíáé ø Þ ò (åãþ)  Þ ó 
s/c([:'-,\. ])/ò$1/g;


# Äéðëïß óõíäõáóìïß
if(/çuv/) {s/u/è/g; s/v/ù/g;}
if( /[áåçéïõ]v[áåçéïõ][áåçéïõ]/ || /[áåçéïõ][áåçéïõ]v[áåçéïõ]/) {s/v/í/g;}


s/([BGDZÈKLMNJÎRSTFXØ])U([BGDZÈKLMNJÎRSTFXØ])/$1Õ$2/g;


s/ó([-:,\.\" ])/ò$1/g;
s/ó$/ò/g;
s/ò'/ó'/g;

s/([âãäæèêëìíîðñóôö÷ø])í([âãäæèêëìíîðñóôö÷ø])/$1ç$2/;
s/([âãäæèêëìíîðñóôö÷ø])í([:'-,\. ])/$1ç$2/;
s/([âãäæèêëìíîðñóôö÷ø])í$/$1$ç/;
s/([:'-,\. ])í([âãäæèêëìíîðñóö÷ø])/$1ç$2/;
s/^í([âãäæèêëìíîðñóö÷ø])/ç$1/;
unless(/íäñ/) { s/í([âãäæèêëìíîðñóôö÷ø])([âãäæèêëìíîðñóôö÷ø])/ç$1$2/;}
s/([âãäæèêëìíîðñóôö÷ø])([âãäæèêëìíîðñóôö÷ø])í/$1$2ç/;

y/cxupn/ó÷õðí/ ;

}

