42 clist_append(&list,
NULL);
54 LEVEL(subg) = LEVEL(
parent) + 1;
57 clist_append(clist, subg);
65 assert(clist_size(&list) - 1 <= INT_MAX);
67 if (clist_size(&list) > 1) {
68 clist_shrink_to_fit(&list);
78 agset(n,
"shape",
"box");
static void * gv_calloc(size_t nmemb, size_t size)
static void * gv_alloc(size_t size)
void setEdgeType(graph_t *g, int defaultValue)
int agnnodes(Agraph_t *g)
Agsym_t * agattr(Agraph_t *g, int kind, char *name, const char *value)
creates or looks up attributes of a graph
int agset(void *obj, char *name, const char *value)
Agedge_t * agfstout(Agraph_t *g, Agnode_t *n)
Agedge_t * agnxtout(Agraph_t *g, Agedge_t *e)
#define GD_neato_nlist(g)
Agnode_t * agnxtnode(Agraph_t *g, Agnode_t *n)
Agnode_t * agfstnode(Agraph_t *g)
char * agnameof(void *)
returns a string descriptor for the object.
void * agbindrec(void *obj, const char *name, unsigned int recsize, int move_to_front)
attaches a new record of the given size to the object
Agraph_t * agfstsubg(Agraph_t *g)
Agraph_t * agnxtsubg(Agraph_t *subg)
#define DEFINE_LIST(name, type)
support for connected components
void patchworkLayout(Agraph_t *g)
void patchwork_cleanup(graph_t *g)
static void patchwork_init_graph(graph_t *g)
static void patchwork_init_node(node_t *n)
static void patchwork_init_node_edge(graph_t *g)
static void patchwork_init_edge(edge_t *e)
static void patchwork_cleanup_graph(graph_t *g)
static void mkClusters(graph_t *g, clist_t *pclist, graph_t *parent)
void patchwork_layout(Agraph_t *g)
void dotneato_postprocess(Agraph_t *g)
void gv_cleanup_edge(Agedge_t *e)
void gv_cleanup_node(Agnode_t *n)
static bool startswith(const char *s, const char *prefix)
does the string s begin with the string prefix?