added occurence counting to glyph pair tracker
authorMatthias Kramm <kramm@quiss.org>
Thu, 19 Nov 2009 05:12:26 +0000 (21:12 -0800)
committerMatthias Kramm <kramm@quiss.org>
Thu, 19 Nov 2009 05:12:26 +0000 (21:12 -0800)
lib/modules/swfalignzones.c
lib/modules/swftext.c
lib/rfxswf.h

index f05cad8..21780d3 100644 (file)
@@ -238,7 +238,7 @@ void swf_FontCreateAlignZones(SWFFONT * f)
            printf("[font %d] pairing %c with ", f->id, f->glyph2ascii[t]);
            for(s=0;s<f->use->num_neighbors;s++) {
                if(f->use->neighbors[s].char2 == t) {
-                   printf("%c ", f->glyph2ascii[f->use->neighbors[s].char1]);
+                   printf("%c (%d) ", f->glyph2ascii[f->use->neighbors[s].char1], f->use->neighbors[s].num);
                    draw_char(f, f->use->neighbors[s].char1, row, column, bounds);
                    drawn++;
                }
index 2ce669a..c473211 100644 (file)
@@ -967,17 +967,19 @@ void swf_FontUsePair(SWFFONT * f, int char1, int char2)
        }
     }
 
-    if(!swf_FontUseGetPair(f, char1, char2)) {
+    int nr = swf_FontUseGetPair(f, char1, char2);
+    if(!nr) {
        if(u->num_neighbors == u->neighbors_size) {
            u->neighbors_size += 4096;
            u->neighbors = rfx_realloc(u->neighbors, sizeof(SWFGLYPHPAIR)*u->neighbors_size);
        }
        u->neighbors[u->num_neighbors].char1 = char1;
        u->neighbors[u->num_neighbors].char2 = char2;
+       u->neighbors[u->num_neighbors].num = 1;
        hashadd(u, char1, char2, u->num_neighbors);
        u->num_neighbors++;
     } else {
-       // increase?
+       u->neighbors[nr-1].num++;
     }
 }
 
index 4ca38a2..7f8eb1c 100644 (file)
@@ -534,6 +534,7 @@ typedef struct _SWFGLYPHPAIR
 {
     U16 char1;
     U16 char2;
+    int num;
 } SWFGLYPHPAIR;
 
 typedef struct _FONTUSAGE