+
+##############################################################################
+
+sub addglyph{
+ my $buffer =<<"EOT";
+Print(0u$_[0])
+Select(0u$_[0])
+Clear()
+Import("$WORKDIR/build/$_[0].svg")
+Scale(500)
+Move(400, -400)
+RemoveOverlap()
+Simplify()
+SetWidth(1000)
+Move(0, 50)
+RoundToInt()
+AutoHint()
+EOT
+ open FH, ">>:utf8", "$WORKDIR/$WORKNAME.scr";
+ print FH $buffer;
+ close FH;
+}
+
+##############################################################################
+
+sub makefont{
+ my $buffer = "Generate(\"$WORKDIR/$WORKNAME.ttf\", \"\", 0)\n";
+ $buffer .= "Quit()\n";
+ open FH, ">>:utf8", "$WORKDIR/$WORKNAME.scr";
+ print FH $buffer;
+ close FH;
+
+ $buffer = `export LANG=utf-8; $FONTFORGE -script $WORKDIR/$WORKNAME.scr >> $WORKDIR/$WORKNAME.log 2>&1`;
+}
+
+##############################################################################
+
+sub addsubset{
+ $subset{$_[0]} = $buhin{$_[0]};
+ my $buffer = '$'.$buhin{$_[0]}.'$';
+ while($buffer =~ m/\$99:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:([^\$]*)/gc){
+ if(!exists($subset{$1})){
+ &addsubset($1);
+ }
+ }
+}
+
+##############################################################################