#!/usr/bin/perl -w
#
# written in 2001 by Torsten Behle und Harald Wagener with much input
# by Thomas Kaiser 
#
# latinize.pl - change filenames in apple double format to filenames in 
# latin-1 format. this works if latin1 is  the default encoding on the 
# target platform (true for most linux distros). 
# it works on RedHat and _should_ work on SuSE, but this is not tested.
#
# This script is licensed under the Terms of the GNU GPL, v2.1. If You are on
# a linux box, numerous copies of the GPL should be found by the command
#
# find / -name COPYING -exec grep -il preamble \{\} \; 2>/dev/null


@target=(".", "-", "", "Ä", "Å", "Ç", "É", "Ñ", "Ö", "Ü", "á", "à", "â", "ä", "ã", "å", "ç", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ñ", "ó", "ò", "ô", "ö", "õ", "ú", "ù", "û", "ü", " ", "°", "¢", "£", "§", "´", "¶", "ß", "®", "©", "Ž", "‚", "Œ", "­", "Æ", "Ø", "", "±", "²", "³", "¥", "µ", "¦", "·", "¸", "¹", "¼", "ª", "º", "½", "æ", "ø", "¿", "¡", "¬", "’", "€", "", "¨", "«", "»", "ƒ", "¾", "À", "Ã", "Õ", "‘", "“", "Ð", "„", "–", "”", "•", "", "÷", "×", "ÿ", "Ý", "˜", "—", "†", "™", "Þ", "¤", "ˆ", "‡", "‰", "‹", "Š", "Â", "Ê", "Á", "Ë", "È", "Í", "Î", "Ï", "Ì", "Ó", "Ô", "ð", "Ò", "Ú", "Û", "Ù", "›", "š", "…", "", "", "œ", "ž", "Ÿ", "ý", "þ", "¯");

@source=(":2e", ":2f", ":7f", ":80", ":81", ":82", ":83", ":84", ":85", ":86", ":87", ":88", ":89", ":8a", ":8b", ":8c", ":8d", ":8e", ":8f", ":90", ":91", ":92", ":93", ":94", ":95", ":96", ":97", ":98", ":99", ":9a", ":9b", ":9c", ":9d", ":9e", ":9f", ":a0", ":a1", ":a2", ":a3", ":a4", ":a5", ":a6", ":a7", ":a8", ":a9", ":aa", ":ab", ":ac", ":ad", ":ae", ":af", ":b0", ":b1", ":b2", ":b3", ":b4", ":b5", ":b6", ":b7", ":b8", ":b9", ":ba", ":bb", ":bc", ":bd", ":be", ":bf", ":c0", ":c1", ":c2", ":c3", ":c4", ":c5", ":c6", ":c7", ":c8", ":c9", ":ca", ":cb", ":cc", ":cd", ":ce", ":cf", ":d0", ":d1", ":d2", ":d3", ":d4", ":d5", ":d6", ":d7", ":d8", ":d9", ":da", ":db", ":dc", ":dd", ":de", ":df", ":e0", ":e1", ":e2", ":e3", ":e4", ":e5", ":e6", ":e7", ":e8", ":e9", ":ea", ":eb", ":ec", ":ed", ":ee", ":ef", ":f0", ":f1", ":f2", ":f3", ":f4", ":f5", ":f6", ":f7", ":f8", ":f9", ":fa", ":fb", ":fc", ":fd", ":fe", ":ff");

my %recode;

for (my $count=0;$count<=$#target;$count++) {
    $recode{$source[$count]} = $target[$count];
}


&renamedir(".");


sub renamedir {

  my $currdir = shift;
  opendir ( CURRDIR, $currdir ) || die "Can't open it!";

  my @filelist = readdir ( CURRDIR );
  my ($oldname,$newname);

  foreach $oldname (@filelist) {
	next if ($oldname eq '.');
	next if ($oldname eq '..');
    if ( -d "$currdir/$oldname") {
       &renamedir("$currdir/$oldname");
    }
    next unless $oldname =~ /:/;
    $newname = $oldname;
    $newname =~ s/(:[0-9a-f]{2})/$recode{$1}/ge;
    rename "$currdir/$oldname", "$currdir/$newname";
    print $newname, "\t", $oldname, "\n";


    
  }

closedir CURRDIR;

}
