Index: parser.c =================================================================== --- parser.c (revision 28425) +++ parser.c (revision 28426) @@ -1038,7 +1038,7 @@ /* add first point to contour */ v[0] = x1; v[1] = y1; - pcb_poly_vertex_include(contour->head.prev, pcb_poly_node_create(v)); + pcb_poly_vertex_include(contour->head->prev, pcb_poly_node_create(v)); /* intermediate points */ for (i = 1; i < poly_points; i++) { @@ -1045,13 +1045,13 @@ double angle = alpha + (beta - alpha) * i / poly_points; v[0] = xc + r * cos(angle); v[1] = yc + r * sin(angle); - pcb_poly_vertex_include(contour->head.prev, pcb_poly_node_create(v)); + pcb_poly_vertex_include(contour->head->prev, pcb_poly_node_create(v)); } /* last point */ v[0] = x2; v[1] = y2; - pcb_poly_vertex_include(contour->head.prev, pcb_poly_node_create(v)); + pcb_poly_vertex_include(contour->head->prev, pcb_poly_node_create(v)); return; } @@ -1187,7 +1187,7 @@ else { if (!vrtx->is_arc) /* line. add vertex to contour */ - pcb_poly_vertex_include(contour->head.prev, pcb_poly_node_create(v)); + pcb_poly_vertex_include(contour->head->prev, pcb_poly_node_create(v)); else /* arc. pcb polyarea contains line segments, not arc segments. convert arc segment to line segments. */ hyp_arc2contour(contour, vrtx->x1, vrtx->y1, vrtx->x2, vrtx->y2, vrtx->xc, vrtx->yc, vrtx->r, pcb_false); Index: write.c =================================================================== --- write.c (revision 28425) +++ write.c (revision 28426) @@ -292,7 +292,7 @@ pl = poly->Clipped->contours; do { - v = pl->head.next; + v = pl->head->next; if (pl == poly->Clipped->contours) pcb_fprintf(wr->f, " {POLYGON L=%[4] T=POUR W=0.0 ID=%d X=%me Y=%me\n", @@ -301,10 +301,10 @@ /* hole. Use same ID as polygon. */ pcb_fprintf(wr->f, " {POLYVOID ID=%d X=%me Y=%me\n", wr->poly_id, v->point[0], flip(v->point[1])); - for (v = v->next; v != pl->head.next; v = v->next) + for (v = v->next; v != pl->head->next; v = v->next) pcb_fprintf(wr->f, " (LINE X=%me Y=%me)\n", v->point[0], flip(v->point[1])); - v = pl->head.next; /* repeat first point */ + v = pl->head->next; /* repeat first point */ pcb_fprintf(wr->f, " (LINE X=%me Y=%me)\n", v->point[0], flip(v->point[1])); fprintf(wr->f, " }\n");