head	1.3;
access;
symbols
	INIT:1.1.1.1 VENDOR:1.1.1;
locks; strict;
comment	@# @;


1.3
date	2011.06.05.10.25.42;	author wkpark;	state Exp;
branches;
next	1.2;

1.2
date	2008.07.02.11.51.23;	author wkpark;	state Exp;
branches;
next	1.1;

1.1
date	2004.08.10.16.05.55;	author wkpark;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2004.08.10.16.05.55;	author wkpark;	state Exp;
branches;
next	;


desc
@@


1.3
log
@[#316158]
 * fixed for the newest fontforge.
 * increse the offset of internal compsite jamos from 60000 to 80000
@
text
@#!/usr/bin/perl

$head=1;
$mpos=0;
for $X (@@ARGV) {
   open(SFD,$X) or die "can't open a sfd";
   $i=0;
   while(<SFD>) {
      if ($head && /^BeginChars:/) { print "BeginChars: 67391 67391\n"; $head=0;}
      elsif ($head) { print;}
#      elsif (/^StartChar: \.notdef/) { $char=0;}
#      elsif (/^StartChar: (.*)$/) { $char=1; $name=$1;}
      elsif (/^StartChar:\s+uni(.{4})(\..*)?$/) {
         $char=1; $name=sprintf("uni%s%s",uc($1),$2);
      }
      elsif (/^StartChar: (.*)$/) { $char=1; $name=$1; }
      elsif ($char && /^EndChar$/) { $char=0; if ($map{"$name"} eq 1) { print; } }
      elsif ($char && /^Encoding: (\d+)\s+(-?\d+),?(\s+\d+)?$/) {
         if ($map{"$name"}) {
            $char=0;
         } else {
            #$enc=$1; $pos=$2;
            $enc=$2; $pos=$1;
            $map{"$name"}=1;
            if ($pos < 60000 and $pos ne 0 and $enc < 0) {
               $map{"$name"}="";
            } else {
               if ($name) {
                  print "StartChar: $name\n";
               } else {
                  print "StartChar: $1\n";
               }
               if ($enc > 0) { $pos = $enc; }
               if ($name =~ /^uni[A-F0-9]{4}/i) {
                  print "Encoding: ",$pos," ",$enc,"\n";
               } else {
                  print "Encoding: ",$pos," ",$enc,"\n";
               }
            }
            $mpos++;
         }
      }
      elsif (/^(Ligature:|EndChars|EndSplineFont)/) {}
#      elsif (/^(HStem:|VStem:)/) {}
      elsif (/^(AltUni2:)/) {}
      elsif ($char) {
         if ($map{"$name"} ne 1 and $enc < 0) {
           $map{"$name"}.=$_;
         } else {
            print $_;
         }
      }
   }
   close(SFD);
}

$npos=65536;
foreach $c (keys %map) {
   next if ($c eq "" or $map{"$c"} eq 1);
   print "StartChar: $c\n";
   print "Encoding: $npos -1\n";
   print $map{"$c"};
   print "EndChar\n";
   $npos++;
}

print "EndChars\nEndSplineFont\n";
@


1.2
log
@update scripts
@
text
@d13 2
a14 2
      elsif (/^StartChar:\s+uni(.{4})$/) {
         $char=1; $name=sprintf("uni%s",uc($1));
d18 1
a18 1
      elsif ($char && /^Encoding: (\d+)\s+(-?\d+)(\s+\d+)?$/) {
d34 2
a35 2
               if ($name =~ /^uni[A-F0-9]{4}$/i) {
                  print "Encoding: ",$enc," ",$enc,"\n";
@


1.1
log
@Initial revision
@
text
@d4 1
d12 6
a17 2
      elsif (/^StartChar: (.*)$/) { $char=1; $name=$1;}
      elsif ($char && /^EndChar$/) { $char=0; print;}
d19 1
a19 1
         if ($map{"$1"}) {
d22 5
a26 3
            $map{"$1"}=$name;
            if ($name) {
               print "StartChar: $name\n";
d28 11
a38 1
               print "StartChar: $1\n";
d40 1
a40 1
            print "Encoding: ",$1," ",$2,"\n";
d45 8
a52 2
      elsif ($char) { print $_;}
      
d57 10
@


1.1.1.1
log
@Import
@
text
@@
