pdf2swf: added workaround for broken dashes
authorMatthias Kramm <kramm@quiss.org>
Mon, 6 Apr 2009 19:53:21 +0000 (21:53 +0200)
committerMatthias Kramm <kramm@quiss.org>
Mon, 6 Apr 2009 19:53:21 +0000 (21:53 +0200)
lib/gfxtools.c

index 0c9e2ab..e79e6fe 100644 (file)
@@ -203,7 +203,13 @@ void gfxtool_draw_dashed_line(gfxdrawer_t*d, gfxline_t*line, float*r, float phas
        fprintf(stderr, "gfxtool: outline doesn't start with a moveTo");
        return;
     }
-    if(!r || (r[0]<=0 && r[0]>-0.01)) {
+    
+    int i;
+    double dashlen=0;
+    for(i=0;r[i]>=0;i++) {
+        dashlen+=r[i];
+    }
+    if(!r || (r[0]<=0 && r[0]>-0.01) || dashlen<0.001) {
         // no dashing. just draw the thing
         while(line) {
             if(line->type == gfx_moveTo) {
@@ -222,7 +228,6 @@ void gfxtool_draw_dashed_line(gfxdrawer_t*d, gfxline_t*line, float*r, float phas
        return;
     }
 
-
     for(;line;line=line->next) {
        if(line->type == gfx_moveTo) {
            d->moveTo(d, line->x, line->y);