even more ttf bugfixes
authorMatthias Kramm <kramm@quiss.org>
Thu, 25 Feb 2010 01:59:21 +0000 (17:59 -0800)
committerMatthias Kramm <kramm@quiss.org>
Thu, 25 Feb 2010 01:59:21 +0000 (17:59 -0800)
lib/devices/pdf.c
lib/ttf.c

index 8ecfa87..3183ce8 100644 (file)
@@ -392,6 +392,17 @@ void pdf_addfont(gfxdevice_t*dev, gfxfont_t*font)
            font->unicode2glyph = 0;
            gfxfont_save(font, filename);
            font->id=old_id;
+         
+#ifdef RUN_TTX
+           /* for testing the generated fonts: run everything through ttx (fonttools) */
+           char cmd[256];
+           sprintf(cmd, "mv %s.ttf test.ttf", fontname);system(cmd);
+           system("rm -f test.ttx");
+           if(system("ttx test.ttf")&0xff00) exit(1);
+           sprintf(cmd, "mv test.ttf %s.old.ttf", fontname, fontname);system(cmd);
+           sprintf(cmd, "ttx test.ttx;mv test.ttf %s.ttf", fontname);system(cmd);
+           sprintf(cmd, "rm -f test.ttx");system(cmd);
+#endif
           
            int l = strlen(font->id);
            for(t=0;t<l+1;t++) {
index 28bdee2..5aa6e10 100644 (file)
--- a/lib/ttf.c
+++ b/lib/ttf.c
@@ -598,8 +598,9 @@ static table_maxp_t*maxp_new(ttf_t*ttf)
 {
     table_maxp_t*maxp = rfx_calloc(sizeof(table_maxp_t));
     int t;
+    maxp->maxContours=1;
     if(ttf->num_glyphs) {
-       int max = 0;
+       int max = 1;
        for(t=0;t<ttf->num_glyphs;t++) {
            if(ttf->glyphs[t].num_points>max)
                max = ttf->glyphs[t].num_points;