From: ellson Date: Mon, 24 Sep 2007 08:22:20 +0000 (+0000) Subject: Fix bug #1196 using patch provided by Michelle Baert X-Git-Tag: LAST_LIBGRAPH~32^2~5258 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d54f42daebd1ea52c878747943849cbed4909e27;p=graphviz Fix bug #1196 using patch provided by Michelle Baert --- diff --git a/lib/common/diagen.c b/lib/common/diagen.c index 03a270120..1d268c083 100644 --- a/lib/common/diagen.c +++ b/lib/common/diagen.c @@ -777,96 +777,97 @@ dia_bezier(point * A, int n, int arrow_at_start, int arrow_at_end, int filled) dia_printf(" \n", llp.x - .11, llp.y - .11, urp.x + .11, urp.y + .11); dia_fputs(" \n"); - if (!Curedge) return; - conn_h = conn_t = -1; - - head = Curedge->head; - tail = Curedge->tail; - - shape_t = ND_shape(tail)->name; - - /* arrowheads */ - if (arrow_at_start) { - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs - (" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - } - if (arrow_at_end) { - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - dia_fputs - (" \n"); - dia_fputs(" \n"); - dia_fputs(" \n"); - } - - dia_fputs(" \n"); - dia_printf(" \n", diapt(A[0]).x, - diapt(A[0]).y); - dia_printf(" \n", diapt(A[n - 1]).x, - diapt(A[n - 1]).y); - dia_fputs(" \n"); - dia_fputs(" \n"); - - if ((strcmp(shape_t, "ellipse") == 0) - || (strcmp(shape_t, "circle") == 0) - || (strcmp(shape_t, "doublecircle") == 0)) { - cp_h = diapt(ND_coord_i(head)); - if (AG_IS_DIRECTED(Rootgraph)) - conn_h = ellipse_connection(cp_h, diapt(A[n - 1])); - else - conn_h = ellipse_connection(cp_h, diapt(A[0])); - } else { - if (AG_IS_DIRECTED(Rootgraph)) - conn_h = box_connection(head, diapt(A[n - 1])); - else - conn_h = box_connection(head, diapt(A[0])); - } - - if ((strcmp(shape_t, "ellipse") == 0) - || (strcmp(shape_t, "circle") == 0) - || (strcmp(shape_t, "doublecircle") == 0)) { - cp_t = diapt(ND_coord_i(tail)); - if (AG_IS_DIRECTED(Rootgraph)) - conn_t = ellipse_connection(cp_t, diapt(A[0])); - else - conn_t = ellipse_connection(cp_t, diapt(A[n - 1])); - } else { - if (AG_IS_DIRECTED(Rootgraph)) - conn_t = box_connection(tail, diapt(A[0])); - else - conn_t = box_connection(tail, diapt(A[n - 1])); - } + if (Curedge) { + conn_h = conn_t = -1; + + head = Curedge->head; + tail = Curedge->tail; + + shape_t = ND_shape(tail)->name; + + /* arrowheads */ + if (arrow_at_start) { + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs + (" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + } + if (arrow_at_end) { + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + dia_fputs + (" \n"); + dia_fputs(" \n"); + dia_fputs(" \n"); + } + + dia_fputs(" \n"); + dia_printf(" \n", diapt(A[0]).x, + diapt(A[0]).y); + dia_printf(" \n", diapt(A[n - 1]).x, + diapt(A[n - 1]).y); + dia_fputs(" \n"); + dia_fputs(" \n"); + + if ((strcmp(shape_t, "ellipse") == 0) + || (strcmp(shape_t, "circle") == 0) + || (strcmp(shape_t, "doublecircle") == 0)) { + cp_h = diapt(ND_coord_i(head)); + if (AG_IS_DIRECTED(Rootgraph)) + conn_h = ellipse_connection(cp_h, diapt(A[n - 1])); + else + conn_h = ellipse_connection(cp_h, diapt(A[0])); + } else { + if (AG_IS_DIRECTED(Rootgraph)) + conn_h = box_connection(head, diapt(A[n - 1])); + else + conn_h = box_connection(head, diapt(A[0])); + } + + if ((strcmp(shape_t, "ellipse") == 0) + || (strcmp(shape_t, "circle") == 0) + || (strcmp(shape_t, "doublecircle") == 0)) { + cp_t = diapt(ND_coord_i(tail)); + if (AG_IS_DIRECTED(Rootgraph)) + conn_t = ellipse_connection(cp_t, diapt(A[0])); + else + conn_t = ellipse_connection(cp_t, diapt(A[n - 1])); + } else { + if (AG_IS_DIRECTED(Rootgraph)) + conn_t = box_connection(tail, diapt(A[0])); + else + conn_t = box_connection(tail, diapt(A[n - 1])); + } - if (arrow_at_start) { - dia_printf - (" \n", - head->id, conn_h); - dia_printf - (" \n", - (n - 1), tail->id, conn_t); - } else { - dia_printf - (" \n", - tail->id, conn_t); - dia_printf - (" \n", - (n - 1), head->id, conn_h); + if (arrow_at_start) { + dia_printf + (" \n", + head->id, conn_h); + dia_printf + (" \n", + (n - 1), tail->id, conn_t); + } else { + dia_printf + (" \n", + tail->id, conn_t); + dia_printf + (" \n", + (n - 1), head->id, conn_h); + } + + dia_fputs(" \n"); } - - dia_fputs(" \n"); dia_fputs(" \n"); }