objsearch = subedge_search;
break;
default:
- abort();
+ agerr(AGERR, "agapply: unknown object type %d\n", AGTYPE(obj));
+ return FAILURE;
+ break;
}
if ((subobj = objsearch(g, obj))) {
rec_apply(g, subobj, fn, arg, objsearch, preorder);
agerr(AGWARN,"attribute macros not implemented");
}
+/* attrstmt:
+ * First argument is always attrtype, so switch covers all cases.
+ */
static void attrstmt(int tkind, char *macroname)
{
item *aptr;
case T_graph: kind = AGRAPH; break;
case T_node: kind = AGNODE; break;
case T_edge: kind = AGEDGE; break;
- default : abort();
}
bindattrs(kind); /* set up defaults for new attributes */
for (aptr = Attrlist.first; aptr; aptr = aptr->next) {