summaryrefslogtreecommitdiffstats
path: root/bdf2c.pl
diff options
context:
space:
mode:
Diffstat (limited to 'bdf2c.pl')
-rw-r--r--bdf2c.pl15
1 files changed, 13 insertions, 2 deletions
diff --git a/bdf2c.pl b/bdf2c.pl
index e92b465..fc43712 100644
--- a/bdf2c.pl
+++ b/bdf2c.pl
@@ -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++;