28 sprintf(name,
"_block_%d", state->
blockCount++);
36 Agraph_t *subg = makeBlockGraph(g, state);
105 dfs(g, v, state, 0, stk);
119 block = makeBlock(g, state);
126 if (isRoot && (
BLOCK(u) == block))
132 }
else if (
PARENT(u) != v) {
136 if (isRoot && !
BLOCK(u)) {
137 block_t *block = makeBlock(g, state);
157 if (!root && state->
N_root) {
169 fprintf (stderr,
"root = %s\n",
agnameof(root));
172 dfs(g, root, state, 1, &stk);
189 find_blocks(g, state);
198 for (bp = bp->
next; bp; bp = next) {
238 static void indent(
int i)
244 void print_blocktree(
block_t * sn,
int depth)
252 fprintf(stderr,
"%s:",
agnameof(g));
254 fprintf(stderr,
" %s",
agnameof(n));
260 print_blocktree(child, depth);
void appendBlock(blocklist_t *bl, block_t *bp)
void initBlocklist(blocklist_t *bl)
CGRAPH_API Agedge_t * agfstedge(Agraph_t *g, Agnode_t *n)
block_t * createBlocktree(Agraph_t *g, circ_state *state)
CGRAPH_API Agnode_t * agtail(Agedge_t *e)
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 Agnode_t * aghead(Agedge_t *e)
void insertBlock(blocklist_t *bl, block_t *bp)
CGRAPH_API char * agnameof(void *)
int blockSize(block_t *sp)
block_t * mkBlock(Agraph_t *g)
CGRAPH_API Agnode_t * agfstnode(Agraph_t *g)
CGRAPH_API Agedge_t * agnxtedge(Agraph_t *g, Agedge_t *e, Agnode_t *n)
void freeBlocktree(block_t *bp)
EXTERN unsigned char Verbose
void freeBlock(block_t *sp)
CGRAPH_API void * agbindrec(void *obj, char *name, unsigned int size, int move_to_front)
CGRAPH_API Agnode_t * agsubnode(Agraph_t *g, Agnode_t *n, int createflag)
boolean late_bool(void *obj, attrsym_t *attr, int def)