]> granicus.if.org Git - graphviz/commitdiff
Fix bug 804. "Accidental" flat multiedges between clusters were being lost
authorellson <devnull@localhost>
Tue, 18 Oct 2005 21:14:17 +0000 (21:14 +0000)
committerellson <devnull@localhost>
Tue, 18 Oct 2005 21:14:17 +0000 (21:14 +0000)
lib/dotgen/cluster.c

index 077318d25551cc7b8e01a784d06ec1fb495a7068..6874a85ac96fb9659dbfd5561afb464ed957af1c 100644 (file)
@@ -195,11 +195,14 @@ void interclexp(graph_t * subg)
 
            /* flat edges */
            if (ND_rank(e->tail) == ND_rank(e->head)) {
-               if (find_flat_edge(e->tail, e->head) == NULL) {
+               edge_t* fe;
+               if ((fe = find_flat_edge(e->tail, e->head)) == NULL) {
                    flat_edge(g, e);
                    prev = e;
-               } else
-                   prev = NULL;
+               } else if (e != fe) {
+                   safe_other_edge(e);
+                   if (!ED_to_virt(e)) merge_oneway(e, fe);
+               }
                continue;
            }