/* edge comparison. OBJTYPE(e) == 0 means ID is a wildcard. */
int agedgeidcmpf(Dict_t * d, void *arg_e0, void *arg_e1, Dtdisc_t * disc)
{
- int rv;
+ long v;
Agedge_t *e0, *e1;
NOTUSED(d);
e0 = arg_e0;
e1 = arg_e1;
NOTUSED(disc);
- rv = AGID(e0->node) - AGID(e1->node);
- if (rv == 0) { /* same node */
+ v = AGID(e0->node) - AGID(e1->node);
+ if (v == 0) { /* same node */
if ((AGTYPE(e0) == 0) || (AGTYPE(e1) == 0))
- rv = 0;
+ v = 0;
else
- rv = AGID(e0) - AGID(e1);
+ v = AGID(e0) - AGID(e1);
}
- return rv;
+ return ((v==0)?0:(v<0?-1:1));
}
/* edge comparison. OBJTYPE(e) == 0 means ID is a wildcard. */
int agedgeseqcmpf(Dict_t * d, void *arg_e0, void *arg_e1, Dtdisc_t * disc)
{
- int rv;
+ long v;
Agedge_t *e0, *e1;
NOTUSED(d);
e0 = arg_e0;
e1 = arg_e1;
NOTUSED(disc);
- rv = AGID(e0->node) - AGID(e1->node);
- if (rv == 0) { /* same node */
+ v = AGID(e0->node) - AGID(e1->node);
+ if (v == 0) { /* same node */
if ((AGTYPE(e0) == 0) || (AGTYPE(e1) == 0))
- rv = 0;
+ v = 0;
else
- rv = AGSEQ(e0) - AGSEQ(e1);
+ v = AGSEQ(e0) - AGSEQ(e1);
}
- return rv;
+ return ((v==0)?0:(v<0?-1:1));
}
Dtdisc_t Ag_mainedge_seq_disc = {
int agraphidcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc)
{
+ long v;
Agraph_t *sg0, *sg1;
sg0 = (Agraph_t *) arg0;
sg1 = (Agraph_t *) arg1;
- return (AGID(sg0) - AGID(sg1));
+ v = (AGID(sg0) - AGID(sg1));
+ return ((v==0)?0:(v<0?-1:1));
}
int agraphseqcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc)
{
+ long v;
Agraph_t *sg0, *sg1;
sg0 = (Agraph_t *) arg0;
sg1 = (Agraph_t *) arg1;
- return (AGSEQ(sg0) - AGSEQ(sg1));
+ v = (AGSEQ(sg0) - AGSEQ(sg1));
+ return ((v==0)?0:(v<0?-1:1));
}
Dtdisc_t Ag_subgraph_id_disc = {
Agdesc_t Agstrictundirected = { 0, 1, 0, 1 };
Agdisc_t AgDefaultDisc = { &AgMemDisc, &AgIdDisc, &AgIoDisc };
+
+
+#include <stdio.h>
+void scndump(Agraph_t *g, char *file)
+{
+ FILE * f = fopen(file,"w");
+ if (f) {agwrite(g,f); fclose(f);}
+}