32 static char Descriptor_id[] =
"AG_cmpnd";
70 if (node_being_saved ==
AGHEAD(e))
74 return &(edgerec->
stack[i]);
115 static void splice(
Agobj_t * obj,
void *arg)
120 Agedge_t **dict_of_del, **dict_of_ins, **dict_of_relabel;
139 dict_of_relabel = &(t->out);
140 dict_of_del = &(h->in);
141 dict_of_ins = &(target->in);
143 dict_of_relabel = &(h->in);
144 dict_of_del = &(t->out);
145 dict_of_ins = &(target->out);
151 aginsedgeimage(g, dict_of_ins, opp);
152 aginsedgeimage(g, dict_of_relabel, e);
168 splice_arg.
target = target;
194 graphrec =
agbindrec(sub, Descriptor_id,
sizeof(*graphrec),
FALSE);
195 if (noderec->
subg || graphrec->
node)
222 subglist = agsubglist(g);
223 while ((s = *subglist++))
224 delete_outside_subg(s, node, subg);
247 subg = noderec->
subg;
262 stackpush(save_stack_of(e, rootn), rootn, cmpnode);
271 delete_outside_subg(root, n, subg);
298 subglist = agsubglist(g);
299 while ((s = *subglist++))
300 delete_outside_subg(s, node, subg);
323 subg = noderec->
subg;
324 agsubgrec_insert(agsubgrec(
agparent(subg)), subg);
328 insert_outside_subg(g, n, subg);
337 for (i = 0; i < 2; i++) {
338 stk = &(edgerec->
stack[i]);
359 return noderec->
subg;
369 return graphrec->
node;
CGRAPH_API Agnode_t * agnode(Agraph_t *g, char *name, int createflag)
CGRAPH_API int agdelnode(Agraph_t *g, Agnode_t *arg_n)
Agraph_t * agcmpgraph_of(Agnode_t *n)
CGRAPH_API long agdelsubg(Agraph_t *g, Agraph_t *sub)
struct save_stack_s save_stack_t
int aghide(Agnode_t *cmpnode)
CGRAPH_API Agedge_t * agfstedge(Agraph_t *g, Agnode_t *n)
Agnode_t * agcmpnode_of(Agraph_t *g)
int agexpose(Agnode_t *cmpnode)
CGRAPH_API Agraph_t * agroot(void *obj)
CGRAPH_API Agraph_t * agraphof(void *obj)
Agnode_t * agcmpnode(Agraph_t *g, char *name)
struct Agsplice_arg_s Agsplice_arg_t
Agnode_t * agfindhidden(Agraph_t *g, char *name)
CGRAPH_API void * agrealloc(Agraph_t *g, void *ptr, size_t oldsize, size_t size)
CGRAPH_API Agraph_t * agsubg(Agraph_t *g, char *name, int cflag)
CGRAPH_API Agnode_t * agnxtnode(Agraph_t *g, Agnode_t *n)
CGRAPH_API Agraph_t * agparent(Agraph_t *g)
void agdeledgeimage(Agraph_t *g, Agedge_t *edge, void *ignored)
CGRAPH_API Agedge_t * agsubedge(Agraph_t *g, Agedge_t *e, int createflag)
CGRAPH_API Agnode_t * agfstnode(Agraph_t *g)
CGRAPH_API Agrec_t * aggetrec(void *obj, char *name, int move_to_front)
int agsplice(Agedge_t *e, Agnode_t *target)
Dict_t * agdtopen(Agraph_t *g, Dtdisc_t *disc, Dtmethod_t *method)
CGRAPH_API Agedge_t * agnxtedge(Agraph_t *g, Agedge_t *e, Agnode_t *n)
CDT_API Dtmethod_t * Dttree
struct Agcmpnode_s Agcmpnode_t
Agnode_t * node(Agraph_t *g, char *name)
CGRAPH_API void * agbindrec(void *obj, char *name, unsigned int size, int move_to_front)
int agassociate(Agnode_t *n, Agraph_t *sub)
struct Agcmpgraph_s Agcmpgraph_t
struct Agcmpedge_s Agcmpedge_t
int agapply(Agraph_t *g, Agobj_t *obj, agobjfn_t fn, void *arg, int preorder)
CGRAPH_API Agnode_t * agsubnode(Agraph_t *g, Agnode_t *n, int createflag)