correct coding system to euc-jp.
[chise/omega.git] / makefonts.pl
index 8c224e4..e1928a9 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl -w -CSD
 # This script requires 't1asm' program, which is part of t1utils package,
 # and 'pfaedit'.
 
@@ -6,11 +6,12 @@ use strict;
 use utf8;
 use IO::Socket::INET;
 use BerkeleyDB;
+use Chise_utils '$omegadb_path';
+require 5.008001;
 
-my $omegadb_path="/usr/local/lib/chise/omega"; # set to the path of your db and script.
-
-my $kageaddr="kage2.fonts.jp:80"; # Specify port number!
-my $kagecgi="/~kamichi/test/kagecgi.cgi"; #
+#my $kageaddr="home.fonts.jp:5100"; # Specify port number!
+my $kageaddr="home.fonts.jp:5101"; # Specify port number!
+#my $kagecgi="/~kamichi/test/kagecgi.cgi"; #
 
 my $t1asm = "/usr/bin/env t1asm"; # point to 't1asm' executable.
 #die "Cannot execute $t1asm. Abort.\n" unless -x $t1asm;
@@ -19,7 +20,23 @@ my $pfaedit="/usr/bin/env pfaedit"; # point to 'pfaedit' executable.
 
 $omegadb_path=~s!/$!!;
 
-my $cleanup_script="$omegadb_path/svg2t1.pfe"; # Check the path of pfaedit script.
+my $cleanup_script=""; # Check the path of pfaedit script, if needed.
+
+unless($cleanup_script){
+    if(-e "/usr/local/share/texmf/omega/ocp/local/chise/svg2t1.pfe"){
+       $cleanup_script="/usr/local/share/texmf/omega/ocp/local/chise/svg2t1.pfe";
+    }elsif(-e "/usr/share/texmf/omega/ocp/local/chise/svg2t1.pfe"){
+       $cleanup_script="/usr/share/texmf/omega/ocp/local/chise/svg2t1.pfe";
+    }elsif(-e "/sw/share/texmf/omega/ocp/local/chise/svg2t1.pfe"){
+       $cleanup_script="/sw/share/texmf/omega/ocp/local/chise/svg2t1.pfe";
+    }
+}
+unless($cleanup_script and -e $cleanup_script){
+    print STDERR "svg2t1.pfe not found!\n",
+    "please check \$cleanup_script in $0.\n";
+    exit 1;
+}
+
 my $dbpath="$omegadb_path/glyph.db"; # check your DB path.
 
 # Open Glyph Database
@@ -154,26 +171,25 @@ BLACKBOX
             if($kageserver = IO::Socket::INET->new("$kageaddr")){
                 print $kageserver "HEAD /$request.svg HTTP/1.1\r\n";
                 print $kageserver "Host: $kageaddr\r\n\r\n";
-                #Get redirection info.
-                local $/="\r\n";
-                while(<$kageserver>){
-                    chomp;
-                    next unless m|^location:\s+http://([a-z0-9.:]+)/|i;
-                    $location=$1;
-                }
-                close($kageserver);
-                print STDERR "Connecting $location...\n";
-                if($location
-                   and $kageserver=IO::Socket::INET->new($location)){
-                    print $kageserver "GET /$request.svg HTTP/1.1\r\n";
-                    print $kageserver "Host: $location\r\n\r\n";
+#               #Get redirection info.
+#               local $/="\r\n";
+#               while(<$kageserver>){
+#                   chomp;
+#                   next unless m|^location:\s+http://([a-z0-9.:]+)/|i;
+#                   $location=$1;
+#               }
+#               close($kageserver);
+#               if($location
+#                  and $kageserver=IO::Socket::INET->new($location)){
+#                   print $kageserver "GET /$request.svg HTTP/1.1\r\n";
+#                   print $kageserver "Host: $location\r\n\r\n";
                     local $/; $svg=<$kageserver>;
                     close($kageserver);
                     $svg =~ s/\r//gm; # remove CR.
                     $svg =~ s/^.+\n\n//ms; # remove HTTP header.
-                }else{
-                    $svg="error";
-                }
+#               }else{
+#                   $svg="error";
+#               }
             }else{
                 print STDERR "Cannot connect to KAGE server at $kageaddr.\n";
                 $svg="error";
@@ -207,7 +223,7 @@ my ($font_start, $ids_start, %ids);
 if(-e $idsdata){
     # "require" doesn't work well.
     # I don't know why...
-    open (my $data, "<$idsdata");
+    open (my $data, "<:utf8","$idsdata");
     while(<$data>){
        eval $_;
     }