--- graphviz-2.20.2/cmd/tools/dot2gxl.c 2008-01-09 21:50:35.000000000 +0100 +++ graphviz-2.24.0/cmd/tools/gv2gxl.c 2009-06-03 03:56:55.000000000 +0200 @@ -1,4 +1,4 @@ -/* $Id: dot2gxl.c,v 1.4 2008/01/09 20:50:35 erg Exp $ $Revision: 1.4 $ */ +/* $Id: gv2gxl.c,v 1.8 2009/06/03 01:56:55 ellson Exp $ $Revision: 1.8 $ */ /* vim:set shiftwidth=4 ts=8: */ /********************************************************** @@ -15,10 +15,7 @@ **********************************************************/ -#include -#ifndef USE_CGRAPH -#include -#endif +#include "convert.h" #include #define SMALLBUF 128 @@ -402,7 +399,7 @@ static void writeDicts(Agraph_t * g, FILE * gxlFile) { Agdatadict_t *def; - if ((def = (Agdatadict_t *) agdatadict(g))) { + if ((def = (Agdatadict_t *) agdatadict(g, FALSE))) { writeDict(g, gxlFile, "graph", def->dict.g, 1); writeDict(g, gxlFile, "node", def->dict.n, 0); writeDict(g, gxlFile, "edge", def->dict.e, 0); @@ -646,7 +643,7 @@ char *val; val = agget(e, name); - if (val[0]) { + if (val && val[0]) { tabover(gxlFile); fprintf(gxlFile, "\t\n", name); tabover(gxlFile); @@ -724,23 +721,15 @@ Agdatadict_t *dd; writeSubgs(stp, g, gxlFile); - dd = (Agdatadict_t *) agdatadict(g); -#ifdef USE_CGRAPH + dd = (Agdatadict_t *) agdatadict(g, FALSE); for (n = agfstnode(g); n; n = agnxtnode(g, n)) { -#else - for (n = agfstnode(g); n; n = agnxtnode(n)) { -#endif realn = agidnode(stp->root, AGID(n), 0); if (!writeval(realn)) { writeval(realn) = 1; writeNode(stp, n, gxlFile, dd->dict.n); } -#ifdef USE_CGRAPH for (e = agfstout(g, n); e; e = agnxtout(g, e)) { -#else - for (e = agfstout(n); e; e = agnxtout(e)) { -#endif if (writeEdgeTest(g, e)) writeEdge(stp, e, gxlFile, dd->dict.e); } @@ -781,11 +770,7 @@ Agedge_t *e; iterate_subgs(stp, g); -#ifdef USE_CGRAPH for (n = agfstnode(g); n; n = agnxtnode(g, n)) { -#else - for (n = agfstnode(g); n; n = agnxtnode(n)) { -#endif char *gxlId; char *nodename = agnameof(n); @@ -800,11 +785,7 @@ addToMap(stp->nodeMap, nodename, gxlId); } -#ifdef USE_CGRAPH for (e = agfstout(g, n); e; e = agnxtout(g, e)) { -#else - for (e = agfstout(n); e; e = agnxtout(e)) { -#endif if (writeEdgeTest(g, e)) { char *edge_id = agget(e, GXL_ID); if (!EMPTY(edge_id)) @@ -836,7 +817,7 @@ free(stp); } -void dot_to_gxl(Agraph_t * g, FILE * gxlFile) +void gv_to_gxl(Agraph_t * g, FILE * gxlFile) { gxlstate_t *stp = initState(g); aginit(g, AGNODE, "node", sizeof(Agnodeinfo_t), TRUE);