X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2FInfoOutputDev.cc;h=83dd43f272323a5a25a75e82fff7b2dcd51437c0;hb=4454f6b665f2f14d0107a0144be947d95a252f8e;hp=bd1a0b587993b3788dfbc56dcdd8c5e0f9257bed;hpb=a1f5318b0789743bbc6d8e93d408379115c67534;p=swftools.git diff --git a/lib/pdf/InfoOutputDev.cc b/lib/pdf/InfoOutputDev.cc index bd1a0b5..83dd43f 100644 --- a/lib/pdf/InfoOutputDev.cc +++ b/lib/pdf/InfoOutputDev.cc @@ -118,15 +118,18 @@ static int findSpace(gfxfont_t*font) for(t=0;tnum_glyphs;t++) { gfxglyph_t*g = &font->glyphs[t]; if(GLYPH_IS_SPACE(g)) { - if(g->unicode == 32) return t; - if(first_space<0) - first_space = t; + if(g->unicode == 32) { + /* now that we have found a space char, make sure it's unique */ + int s; + for(s=0;snum_glyphs;s++) { + if(s!=t && font->glyphs[s].unicode==32) + font->glyphs[s].unicode=0; + } + return t; + } } } - if(font->num_glyphs>32 && GLYPH_IS_SPACE(&font->glyphs[32])) { - return 32; - } - return first_space; + return -1; } static int addSpace(gfxfont_t*font) @@ -153,8 +156,7 @@ static int addSpace(gfxfont_t*font) static gfxfont_t* createGfxFont(FontInfo*src) { - gfxfont_t*font = (gfxfont_t*)malloc(sizeof(gfxfont_t)); - memset(font, 0, sizeof(gfxfont_t)); + gfxfont_t*font = (gfxfont_t*)rfx_calloc(sizeof(gfxfont_t)); font->glyphs = (gfxglyph_t*)malloc(sizeof(gfxglyph_t)*src->num_glyphs); memset(font->glyphs, 0, sizeof(gfxglyph_t)*src->num_glyphs);