]> granicus.if.org Git - graphviz/commitdiff
Fix for problem with "ignored" nodes in cluster. This won't be an issue
authornorth <devnull@localhost>
Fri, 26 Nov 2010 16:17:00 +0000 (16:17 +0000)
committernorth <devnull@localhost>
Fri, 26 Nov 2010 16:17:00 +0000 (16:17 +0000)
when the new level assignment code goes in, if that ever happens.

lib/dotgen/cluster.c

index 69666c84586f26202252d7edbe9fd3ef35f66a69..ff4772480c6de014808ec2f2410ba649b93ce040 100644 (file)
@@ -351,7 +351,7 @@ void expand_cluster(graph_t * subg)
 void mark_clusters(graph_t * g)
 {
     int c;
-    node_t *n, *vn;
+    node_t *n, *nn, *vn;
     edge_t *orig, *e;
     graph_t *clust;
 
@@ -364,11 +364,13 @@ void mark_clusters(graph_t * g)
 
     for (c = 1; c <= GD_n_cluster(g); c++) {
        clust = GD_clust(g)[c];
-       for (n = agfstnode(clust); n; n = agnxtnode(clust, n)) {
+       for (n = agfstnode(clust); n; n = nn) {
+               nn = agnxtnode(clust,n);
            if (ND_ranktype(n) != NORMAL) {
                agerr(AGWARN,
-                     "%s was already in a rankset, ignored in cluster %s\n",
+                     "%s was already in a rankset, deleted from cluster %s\n",
                      agnameof(n), agnameof(g));
+               agdelete(clust,n);
                continue;
            }
            UF_setname(n, GD_leader(clust));