minor bugfixes
[swftools.git] / lib / pdf / InfoOutputDev.cc
index 701c966..e0fc2e3 100644 (file)
@@ -131,6 +131,12 @@ static int findSpace(gfxfont_t*font)
 
 static int addSpace(gfxfont_t*font)
 {
+    /* first, make sure the new space char is the only char that'll use unicode 32 */
+    int t;
+    for(t=0;t<font->num_glyphs;t++) {
+       if(font->glyphs[t].unicode==32)
+           font->glyphs[t].unicode=0;
+    }
     font->num_glyphs++;
     font->glyphs = (gfxglyph_t*)realloc(font->glyphs, sizeof(gfxglyph_t)*font->num_glyphs);
     gfxglyph_t*g = &font->glyphs[font->num_glyphs-1];
@@ -221,8 +227,6 @@ static gfxfont_t* createGfxFont(FontInfo*src)
        }
     }
 
-    gfxfont_fix_unicode(font);
-
     int kerning_size = 0;
     for(t=0;t<src->num_glyphs;t++) {
        dict_t* d = src->kerning[t];
@@ -284,6 +288,7 @@ gfxfont_t* FontInfo::getGfxFont()
            this->space_char = addSpace(this->gfxfont);
            msg("<debug> Appending space char to font %s, position %d, width %f", this->gfxfont->id, this->space_char, this->gfxfont->glyphs[this->space_char].advance);
        }
+       gfxfont_fix_unicode(this->gfxfont);
     }
     return this->gfxfont;
 }