Index: work/util/ttf2lht/drv_poly.c =================================================================== --- work/util/ttf2lht/drv_poly.c (revision 18940) +++ work/util/ttf2lht/drv_poly.c (revision 18941) @@ -14,12 +14,7 @@ return; pcb_poly_contour_pre(s->curr, pcb_true); - if (s->curr->Flags.orient) { - pcb_poly_contour_inv(s->curr); - APPEND(s->neg, s->curr); - } - else - APPEND(s->pos, s->curr); + APPEND(s->pls, s->curr); s->curr = NULL; } @@ -62,7 +57,17 @@ void stroke_poly_finish(stroke_t *s_) { poly_stroke_t *s = (poly_stroke_t *)s_; + pcb_pline_t *pl, *next; + pline_close(s); + + pcb_polyarea_init(&s->pa); + for(pl = s->pls; pl != NULL; pl = next) { + next = pl->next; + pl->next = NULL; + if (!pcb_polyarea_contour_include(&s->pa, pl)) + fprintf(stderr, "Failed to include positive outline\n"); + } } void stroke_poly_uninit(stroke_t *s_) Index: work/util/ttf2lht/drv_poly.h =================================================================== --- work/util/ttf2lht/drv_poly.h (revision 18940) +++ work/util/ttf2lht/drv_poly.h (revision 18941) @@ -8,8 +8,7 @@ /* polylines used while loading the outline */ pcb_pline_t *curr; - pcb_pline_t *pos; - pcb_pline_t *neg; + pcb_pline_t *pls; /* the resulting polyarea */ pcb_polyarea_t pa;