#!/usr/local/bin/perl
#Win to koi-8 translator for html files ver 1.01
#Mpl-Unlimited(c)1996-98 
#mishelev@hep486.pnpi.spb.ru
#http://www.pnpi.spb.ru/~mishelev
##################################################################
# Set Variables

$cgiurl = "http://dbserv.pnpi.spb.ru/~mishelev/cgi-bin/school/win2koi.cgi";
$date_command = "/usr/bin/date";

# Done
##############################################################################

%codetable = ('À',225,'Á',226,'Â',247,'Ã',231,'Ä',228,'Å',229,'Æ',246,'Ç',250,'È',233,'É',234,'Ê',235,'Ë',236,
'Ì',237,'Í',238,'Î',239,'Ï',240,'Ð',242,'Ñ',243,'Ò',244,'Ó',245,'Ô',230,'Õ',232,'Ö',227,'×',254,'Ø',251,'Ù',253,
'Ú',255,'Û',249,'Ü',248,'Ý',252,'Þ',224,'ß',241,'à',193,'á',194,'â',215,'ã',199,'ä',196,'å',197,'æ',214,'ç',218,
'è',201,'é',202,'ê',203,'ë',204,'ì',205,'í',206,'î',207,'ï',208,'ð',210,'ñ',211,'ò',212,'ó',213,'ô',198,'õ',200,
'ö',195,'÷',222,'ø',219,'ù',221,'ú',223,'û',217,'ü',216,'ý',220,'þ',192,'ÿ',209);
#Main
#Geting file information.
#################
$koi = "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text\/html; charset=koi8-r\">";
$win = "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text\/html; charset=windows-1251\">";

($file,$group) = split(/::/,$ENV{'QUERY_STRING'});
&open_file($file,$group);
#
##########
sub open_file
{
local($file_name,$file_dir,$tmp_name,@lines,$file_group);
($file_name,$file_group) = @_;
$file_dir = '/www/docs/WinterSchool';
if($file_group ne 'root') {
	$tmp_name = join("/",$file_dir,$file_group,$file_name);
}else{
	$tmp_name = join("/",$file_dir,$file_name);
}

print "Content-type: text/html\n\n";
open(DATA,"$tmp_name");
chomp;
   @lines = <DATA>;
close (DATA);

foreach $line (@lines)
	{
	if (index($line,$win) >= 0)
		{
		$line = $koi;
		print $line,"\n";
		}else{
		@to_code = split(//,$line);
		foreach $letter (@to_code)
			{
			$letter = pack("c",$codetable{$letter}) if ( unpack("c",$letter) > -65 && unpack("c",$letter) < 0);
			}
		$line = join("",@to_code);
	print "$line\n";
		}
	}

for ($i=0;$i<256;$i++){print pack("c",$i),$i;}
}
###

