The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

# Copyright 2011 Kevin Ryde

# This file is part of Finance-Quote-Grab.
#
# Finance-Quote-Grab is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 3, or (at your option) any later
# version.
#
# Finance-Quote-Grab is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License along
# with Finance-Quote-Grab.  If not, see <http://www.gnu.org/licenses/>.

use strict;
use Encode;

#------------------------------------------------------------------------------
# 8859-7 transliteration
#
# The 8859-7 bytes here in the source are for ease of seeing what they're
# supposed to be, but they're only in the comments, the tr printed is
# all-ascii.
#
# This is for some greek characters found in otherwise English names, like
# ÂÁÍÊ (0xC2,0xC1,0xCD,0xCA) for BANK in ALPHA.ATH.  That comes out looking
# ok in Gtk or anywhere with good fonts, but for a tty a change to the
# actual intended latin characters is needed to make it printable.
#

my @table
  = (
     #            # A0   NO-BREAK SPACE
     #            # A1 ¡ MODIFIER LETTER REVERSED COMMA
     #            # A2 ¢ MODIFIER LETTER APOSTROPHE
     #            # A3 £ POUND SIGN
     #            # A4
     #            # A5
     #            # A6 ¦ BROKEN BAR
     #            # A7 § SECTION SIGN
     #            # A8 ¨ DIAERESIS
     #            # A9
     #            # AA
     #            # AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
     #            # AC ¬ NOT SIGN
     #            # AD ­ SOFT HYPHEN
     #            # AE
     #            # AF ¯ HORIZONTAL BAR
     #            # B0 ° DEGREE SIGN
     #            # B1 ± PLUS-MINUS SIGN
     #            # B2 ² SUPERSCRIPT TWO
     #            # B3 ³ SUPERSCRIPT THREE
     #            # B4 ´ GREEK TONOS
     #            # B5 µ GREEK DIALYTIKA TONOS
     0xB6 => 'A', # B6 ¶ GREEK CAPITAL LETTER ALPHA WITH TONOS
     #            # B7 · MIDDLE DOT
     0xB8 => 'E', # B8 ¸ GREEK CAPITAL LETTER EPSILON WITH TONOS
     0xB9 => 'H', # B9 ¹ GREEK CAPITAL LETTER ETA WITH TONOS
     0xBA => 'I', # BA º GREEK CAPITAL LETTER IOTA WITH TONOS
     #            # BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
     #            # BC ¼ GREEK CAPITAL LETTER OMICRON WITH TONOS
     #            # BD ½ VULGAR FRACTION ONE HALF
     #            # BE ¾ GREEK CAPITAL LETTER UPSILON WITH TONOS
     0xBF => 'O', # BF ¿ GREEK CAPITAL LETTER OMEGA WITH TONOS
     #            # C0 À GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
     0xC1 => 'A', # C1 Á GREEK CAPITAL LETTER ALPHA
     0xC2 => 'B', # C2 Â GREEK CAPITAL LETTER BETA
     0xC3 => 'G', # C3 Ã GREEK CAPITAL LETTER GAMMA
     0xC4 => 'D', # C4 Ä GREEK CAPITAL LETTER DELTA
     0xC5 => 'E', # C5 Å GREEK CAPITAL LETTER EPSILON
     0xC6 => 'Z', # C6 Æ GREEK CAPITAL LETTER ZETA
     0xC7 => 'H', # C7 Ç GREEK CAPITAL LETTER ETA
     #            # C8 È GREEK CAPITAL LETTER THETA
     0xC9 => 'I', # C9 É GREEK CAPITAL LETTER IOTA
     0xCA => 'K', # CA Ê GREEK CAPITAL LETTER KAPPA
     0xCB => 'L', # CB Ë GREEK CAPITAL LETTER LAMDA
     0xCC => 'M', # CC Ì GREEK CAPITAL LETTER MU
     0xCD => 'N', # CD Í GREEK CAPITAL LETTER NU
     0xCE => 'X', # CE Î GREEK CAPITAL LETTER XI
     #            # CF Ï GREEK CAPITAL LETTER OMICRON
     0xD0 => 'P', # D0 Ð GREEK CAPITAL LETTER PI
     0xD1 => 'R', # D1 Ñ GREEK CAPITAL LETTER RHO
     #            # D2
     0xD3 => 'S', # D3 Ó GREEK CAPITAL LETTER SIGMA
     0xD4 => 'T', # D4 Ô GREEK CAPITAL LETTER TAU
     #            # D5 Õ GREEK CAPITAL LETTER UPSILON
     #            # D6 Ö GREEK CAPITAL LETTER PHI
     #            # D7 × GREEK CAPITAL LETTER CHI
     #            # D8 Ø GREEK CAPITAL LETTER PSI
     0xD9 => 'O', # D9 Ù GREEK CAPITAL LETTER OMEGA
     #            # DA Ú GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
     #            # DB Û GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
     0xDC => 'a', # DC Ü GREEK SMALL LETTER ALPHA WITH TONOS
     0xDD => 'e', # DD Ý GREEK SMALL LETTER EPSILON WITH TONOS
     #            # DE Þ GREEK SMALL LETTER ETA WITH TONOS
     0xDF => 'i', # DF ß GREEK SMALL LETTER IOTA WITH TONOS
     #            # E0 à GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
     0xE1 => 'a', # E1 á GREEK SMALL LETTER ALPHA
     0xE2 => 'b', # E2 â GREEK SMALL LETTER BETA
     0xE3 => 'g', # E3 ã GREEK SMALL LETTER GAMMA
     0xE4 => 'd', # E4 ä GREEK SMALL LETTER DELTA
     0xE5 => 'e', # E5 å GREEK SMALL LETTER EPSILON
     0xE6 => 'z', # E6 æ GREEK SMALL LETTER ZETA
     #            # E7 ç GREEK SMALL LETTER ETA
     #            # E8 è GREEK SMALL LETTER THETA
     0xE9 => 'i', # E9 é GREEK SMALL LETTER IOTA
     0xEA => 'k', # EA ê GREEK SMALL LETTER KAPPA
     0xEB => 'l', # EB ë GREEK SMALL LETTER LAMDA
     0xEC => 'm', # EC ì GREEK SMALL LETTER MU
     0xED => 'n', # ED í GREEK SMALL LETTER NU
     #            # EE î GREEK SMALL LETTER XI
     #            # EF ï GREEK SMALL LETTER OMICRON
     0xF0 => 'p', # F0 ð GREEK SMALL LETTER PI
     0xF1 => 'r', # F1 ñ GREEK SMALL LETTER RHO
     0xF2 => 's', # F2 ò GREEK SMALL LETTER FINAL SIGMA
     0xF3 => 's', # F3 ó GREEK SMALL LETTER SIGMA
     0xF4 => 't', # F4 ô GREEK SMALL LETTER TAU
     #            # F5 õ GREEK SMALL LETTER UPSILON
     #            # F6 ö GREEK SMALL LETTER PHI
     #            # F7 ÷ GREEK SMALL LETTER CHI
     #            # F8 ø GREEK SMALL LETTER PSI
     0xF9 => 'o', # F9 ù GREEK SMALL LETTER OMEGA
     0xFA => 'i', # FA ú GREEK SMALL LETTER IOTA WITH DIALYTIKA
     #            # FB û GREEK SMALL LETTER UPSILON WITH DIALYTIKA
     #            # FC ü GREEK SMALL LETTER OMICRON WITH TONOS
     #            # FD ý GREEK SMALL LETTER UPSILON WITH TONOS
     0xFE => 'o', # FE þ GREEK SMALL LETTER OMEGA WITH TONOS
     #            # FF
    );

my $tr_from;
my $tr_to;

while (@table) {
  my $from_ord = shift @table;
  my $to_chr = shift @table;

  my $from_chr = sprintf('\\x%02X', $from_ord);

  $tr_from .= $from_chr;
  $tr_to .= $to_chr;
}

# $tr_from =~ s/-/\\-/g; # escape "tr" dash as range
# $tr_to   =~ s/-/\\-/g;

print "tr{$tr_from}\n  {$tr_to}\n";
exit 0;


# Local variables:
# coding: iso-8859-7
# End: