{
if (!gvc)
gv_init();
- return agread(f, NULL);
+ return agread(f, nullptr);
}
Agraph_t *read(const char *filename)
f = fopen(filename, "r");
if (!f)
- return NULL;
+ return nullptr;
if (!gvc)
gv_init();
- g = agread(f, NULL);
+ g = agread(f, nullptr);
fclose(f);
return g;
}
Agnode_t *node(Agraph_t *g, char *name)
{
if (!gvc)
- return NULL;
+ return nullptr;
return agnode(g, name, 1);
}
Agedge_t *edge(Agraph_t* g, Agnode_t *t, Agnode_t *h)
{
if (!gvc || !t || !h || !g)
- return NULL;
+ return nullptr;
// edges from/to the protonode are not permitted
if (AGTYPE(t) == AGRAPH || AGTYPE(h) == AGRAPH)
- return NULL;
- return agedge(g, t, h, NULL, 1);
+ return nullptr;
+ return agedge(g, t, h, nullptr, 1);
}
Agedge_t *edge(Agnode_t *t, Agnode_t *h)
Agsym_t *a;
if (!g || !attr)
- return NULL;
+ return nullptr;
a = agfindattr(agroot(g), attr);
return myagxget(g, a);
}
char *setv(Agraph_t *g, Agsym_t *a, char *val)
{
if (!g || !a || !val)
- return NULL;
+ return nullptr;
myagxset(g, a, val);
return val;
}
Agsym_t *a;
if (!g || !attr || !val)
- return NULL;
+ return nullptr;
a = agfindattr(agroot(g), attr);
if (!a)
a = agraphattr(g->root, attr, emptystring);
char *getv(Agnode_t *n, Agsym_t *a)
{
if (!n || !a)
- return NULL;
+ return nullptr;
if (AGTYPE(n) == AGRAPH) // protonode
- return NULL; // FIXME ??
+ return nullptr; // FIXME ??
return myagxget(n, a);
}
char *getv(Agnode_t *n, char *attr)
Agsym_t *a;
if (!n || !attr)
- return NULL;
+ return nullptr;
if (AGTYPE(n) == AGRAPH) // protonode
- return NULL; // FIXME ??
+ return nullptr; // FIXME ??
g = agroot(agraphof(n));
- a = agattr(g, AGNODE, attr, NULL);
+ a = agattr(g, AGNODE, attr, nullptr);
return myagxget(n, a);
}
char *setv(Agnode_t *n, Agsym_t *a, char *val)
{
if (!n || !a || !val)
- return NULL;
+ return nullptr;
if (AGTYPE(n) == AGRAPH) // protonode
- return NULL; // FIXME ??
+ return nullptr; // FIXME ??
myagxset(n, a, val);
return val;
}
Agsym_t *a;
if (!n || !attr || !val)
- return NULL;
+ return nullptr;
if (AGTYPE(n) == AGRAPH) { // protonode
g = (Agraph_t*)n;
a = agattr(g, AGNODE, attr, val); // create default attribute in psuodo protonode
return val;
}
g = agroot(agraphof(n));
- a = agattr(g, AGNODE, attr, NULL);
+ a = agattr(g, AGNODE, attr, nullptr);
if (!a)
a = agnodeattr(g, attr, emptystring);
myagxset(n, a, val);
char *getv(Agedge_t *e, Agsym_t *a)
{
if (!e || !a)
- return NULL;
+ return nullptr;
if (AGTYPE(e) == AGRAPH) // protoedge
- return NULL; // FIXME ??
+ return nullptr; // FIXME ??
return myagxget(e, a);
}
char *getv(Agedge_t *e, char *attr)
Agsym_t *a;
if (!e || !attr)
- return NULL;
+ return nullptr;
if (AGTYPE(e) == AGRAPH) // protoedge
- return NULL; // FIXME ??
+ return nullptr; // FIXME ??
g = agraphof(agtail(e));
- a = agattr(g, AGEDGE, attr, NULL);
+ a = agattr(g, AGEDGE, attr, nullptr);
return myagxget(e, a);
}
char *setv(Agedge_t *e, Agsym_t *a, char *val)
{
if (!e || !a || !val)
- return NULL;
+ return nullptr;
if (AGTYPE(e) == AGRAPH) // protoedge
- return NULL; // FIXME ??
+ return nullptr; // FIXME ??
myagxset(e, a, val);
return val;
}
Agsym_t *a;
if (!e || !attr || !val)
- return NULL;
+ return nullptr;
if (AGTYPE(e) == AGRAPH) { // protoedge
g = (Agraph_t*)e;
a = agattr(g, AGEDGE, attr, val); // create default attribute in pseudo protoedge
return val;
}
g = agroot(agraphof(agtail(e)));
- a = agattr(g, AGEDGE, attr, NULL);
+ a = agattr(g, AGEDGE, attr, nullptr);
if (!a)
a = agattr(g, AGEDGE, attr, emptystring);
myagxset(e, a, val);
Agraph_t *findsubg(Agraph_t *g, char *name)
{
if (!g || !name)
- return NULL;
+ return nullptr;
return agsubg(g, name, 0);
}
Agnode_t *findnode(Agraph_t *g, char *name)
{
if (!g || !name)
- return NULL;
+ return nullptr;
return agnode(g, name, 0);
}
Agedge_t *findedge(Agnode_t *t, Agnode_t *h)
{
if (!t || !h)
- return NULL;
+ return nullptr;
if (AGTYPE(t) == AGRAPH || AGTYPE(h) == AGRAPH)
- return NULL;
+ return nullptr;
return agfindedge(agraphof(t), t, h);
}
Agsym_t *findattr(Agraph_t *g, char *name)
{
if (!g || !name)
- return NULL;
+ return nullptr;
return agfindattr(g, name);
}
Agsym_t *findattr(Agnode_t *n, char *name)
{
if (!n || !name)
- return NULL;
+ return nullptr;
return agfindattr(n, name);
}
Agsym_t *findattr(Agedge_t *e, char *name)
{
if (!e || !name)
- return NULL;
+ return nullptr;
return agfindattr(e, name);
}
Agnode_t *headof(Agedge_t *e)
{
if (!e)
- return NULL;
+ return nullptr;
if (AGTYPE(e) == AGRAPH)
- return NULL;
+ return nullptr;
return aghead(e);
}
Agnode_t *tailof(Agedge_t *e)
{
if (!e)
- return NULL;
+ return nullptr;
if (AGTYPE(e) == AGRAPH)
- return NULL;
+ return nullptr;
return agtail(e);
}
Agraph_t *graphof(Agraph_t *g)
{
if (!g || g == g->root)
- return NULL;
+ return nullptr;
return agroot(g);
}
Agraph_t *graphof(Agedge_t *e)
{
if (!e)
- return NULL;
+ return nullptr;
if (AGTYPE(e) == AGRAPH)
return (Agraph_t*)e; /* graph of protoedge is itself recast */
return agraphof(agtail(e));
Agraph_t *graphof(Agnode_t *n)
{
if (!n)
- return NULL;
+ return nullptr;
if (AGTYPE(n) == AGRAPH)
return (Agraph_t*)n; /* graph of protonode is itself recast */
return agraphof(n);
Agraph_t *rootof(Agraph_t *g)
{
if (!g)
- return NULL;
+ return nullptr;
return agroot(g);
}
Agnode_t *protonode(Agraph_t *g)
{
if (!g)
- return NULL;
+ return nullptr;
return (Agnode_t *)g; // gross abuse of the type system!
}
Agedge_t *protoedge(Agraph_t *g)
{
if (!g)
- return NULL;
+ return nullptr;
return (Agedge_t *)g; // gross abuse of the type system!
}
char *nameof(Agraph_t *g)
{
if (!g)
- return NULL;
+ return nullptr;
return agnameof(g);
}
char *nameof(Agnode_t *n)
{
if (!n)
- return NULL;
+ return nullptr;
if (AGTYPE(n) == AGRAPH)
- return NULL;
+ return nullptr;
return agnameof(n);
}
//char *nameof(Agedge_t *e)
char *nameof(Agsym_t *a)
{
if (!a)
- return NULL;
+ return nullptr;
return a->name;
}
Agraph_t *firstsubg(Agraph_t *g)
{
if (!g)
- return NULL;
+ return nullptr;
return agfstsubg(g);
}
{
if (!g || !sg)
- return NULL;
+ return nullptr;
return agnxtsubg(sg);
}
Agraph_t *nextsupg(Agraph_t*, Agraph_t*)
{
- return NULL;
+ return nullptr;
}
Agedge_t *firstout(Agraph_t *g)
Agedge_t *e;
if (!g)
- return NULL;
+ return nullptr;
for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
e = agfstout(g, n);
if (e) return e;
}
- return NULL;
+ return nullptr;
}
Agedge_t *nextout(Agraph_t *g, Agedge_t *e)
Agedge_t *ne;
if (!g || !e)
- return NULL;
+ return nullptr;
ne = agnxtout(g, e);
if (ne)
return (ne);
ne = agfstout(g, n);
if (ne) return ne;
}
- return NULL;
+ return nullptr;
}
Agedge_t *firstedge(Agraph_t *g)
Agedge_t *firstout(Agnode_t *n)
{
if (!n)
- return NULL;
+ return nullptr;
return agfstout(agraphof(n), n);
}
Agedge_t *nextout(Agnode_t *n, Agedge_t *e)
{
if (!n || !e)
- return NULL;
+ return nullptr;
return agnxtout(agraphof(n), e);
}
Agedge_t *e;
if (!n)
- return NULL;
+ return nullptr;
e = agfstout(agraphof(n), n);
if (!e)
- return NULL;
+ return nullptr;
return aghead(e);
}
Agraph_t *g;
if (!n || !h)
- return NULL;
+ return nullptr;
g = agraphof(n);
e = agfindedge(g, n, h);
if (!e)
- return NULL;
+ return nullptr;
do {
e = agnxtout(g, AGMKOUT(e));
if (!e)
- return NULL;
+ return nullptr;
} while (aghead(e) == h);
return aghead(e);
}
Agedge_t *firstedge(Agnode_t *n)
{
if (!n)
- return NULL;
+ return nullptr;
return agfstedge(agraphof(n), n);
}
Agedge_t *nextedge(Agnode_t *n, Agedge_t *e)
{
if (!n || !e)
- return NULL;
+ return nullptr;
return agnxtedge(agraphof(n), e, n);
}
Agnode_t *n;
if (!g)
- return NULL;
+ return nullptr;
n = agfstnode(g);
if (!n)
- return NULL;
+ return nullptr;
return agfstin(g, n);
}
Agedge_t *ne;
if (!g || !e)
- return NULL;
+ return nullptr;
ne = agnxtin(g, e);
if (ne)
return (ne);
n = agnxtnode(g, aghead(e));
if (!n)
- return NULL;
+ return nullptr;
return agfstin(g, n);
}
Agedge_t *firstin(Agnode_t *n)
{
if (!n)
- return NULL;
+ return nullptr;
return agfstin(agraphof(n), n);
}
Agedge_t *nextin(Agnode_t *n, Agedge_t *e)
{
if (!n || !e)
- return NULL;
+ return nullptr;
return agnxtin(agraphof(n), e);
}
Agedge_t *e;
if (!n)
- return NULL;
+ return nullptr;
e = agfstin(agraphof(n), n);
if (!e)
- return NULL;
+ return nullptr;
return agtail(e);
}
Agraph_t *g;
if (!n || !t)
- return NULL;
+ return nullptr;
g = agraphof(n);
e = agfindedge(g, t, n);
if (!e)
- return NULL;
+ return nullptr;
do {
e = agnxtin(g, AGMKIN(e));
if (!e)
- return NULL;
+ return nullptr;
} while (agtail(e) == t);
return agtail(e);
}
Agnode_t *firstnode(Agraph_t *g)
{
if (!g)
- return NULL;
+ return nullptr;
return agfstnode(g);
}
Agnode_t *nextnode(Agraph_t *g, Agnode_t *n)
{
if (!g || !n)
- return NULL;
+ return nullptr;
return agnxtnode(g, n);
}
Agnode_t *firstnode(Agedge_t *e)
{
if (!e)
- return NULL;
+ return nullptr;
return agtail(e);
}
Agnode_t *nextnode(Agedge_t *e, Agnode_t *n)
{
if (!e || n != agtail(e))
- return NULL;
+ return nullptr;
return aghead(e);
}
Agsym_t *firstattr(Agraph_t *g)
{
if (!g)
- return NULL;
+ return nullptr;
g = agroot(g);
- return agnxtattr(g,AGRAPH,NULL);
+ return agnxtattr(g,AGRAPH,nullptr);
}
Agsym_t *nextattr(Agraph_t *g, Agsym_t *a)
{
if (!g || !a)
- return NULL;
+ return nullptr;
g = agroot(g);
return agnxtattr(g,AGRAPH,a);
}
Agraph_t *g;
if (!n)
- return NULL;
+ return nullptr;
g = agraphof(n);
- return agnxtattr(g,AGNODE,NULL);
+ return agnxtattr(g,AGNODE,nullptr);
}
Agsym_t *nextattr(Agnode_t *n, Agsym_t *a)
Agraph_t *g;
if (!n || !a)
- return NULL;
+ return nullptr;
g = agraphof(n);
return agnxtattr(g,AGNODE,a);
}
Agraph_t *g;
if (!e)
- return NULL;
+ return nullptr;
g = agraphof(agtail(e));
- return agnxtattr(g,AGEDGE,NULL);
+ return agnxtattr(g,AGEDGE,nullptr);
}
Agsym_t *nextattr(Agedge_t *e, Agsym_t *a)
Agraph_t *g;
if (!e || !a)
- return NULL;
+ return nullptr;
g = agraphof(agtail(e));
return agnxtattr(g,AGEDGE,a);
}
BA ba;
if (!g)
- return NULL;
+ return nullptr;
if (!GD_alg(g))
- return NULL;
+ return nullptr;
ba.sz = BUFSIZ;
ba.data = (char*)malloc(ba.sz*sizeof(char)); /* must be freed by wrapper code */
ba.len = 0;
unsigned int length;
if (!g)
- return NULL;
+ return nullptr;
err = gvRenderData(gvc, g, format, &data, &length);
if (err)
- return NULL;
+ return nullptr;
data = (char*)realloc(data, length + 1);
return data;
}