diff options
Diffstat (limited to 'bdf2c.pl')
-rw-r--r-- | bdf2c.pl | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -20,9 +20,17 @@ while(<>) { } elsif(/^ENCODING (.*)$/) { $glyphindex=$1; $searchfor="BBX"; + $dwidth=0; + } elsif(/^DWIDTH (.*) (.*)/) { + $dwidth=$1; } elsif(/^BBX (.*) (.*) (.*) (.*)$/) { ($width,$height,$x,$y)=($1,$2,$3,$4); @encodings[$glyphindex*5..($glyphindex*5+4)]=($counter,$width,$height,$x,$y); + if($dwidth != 0) { + $encodings[$glyphindex*5+1]=$dwidth; + } else { + $dwidth=$width; + } $searchfor="BITMAP"; } elsif(/^BITMAP/) { $i=1; @@ -31,8 +39,11 @@ while(<>) { $i=0; $out.=" /* $glyphindex */\n"; } else { - $_=substr($_,0,length($_)-1); - $counter+=length($_)/2; + if(int(($dwidth+7)/8) > int(($width+7)/8)) { + $_ .= "00"x(int(($dwidth+7)/8)-int(($width+7)/8)); + } + $_=substr($_,0,(int(($dwidth+7)/8)*2)); + $counter+=(int(($dwidth+7)/8)); s/(..)/$nullx$1,/g; $out.=$_; $i++; |