int gt_toolobjdriver(GtToolConstructor tool_constructor, int argc, char *argv[]) { GtTool *tool; GtError *err; int had_err; gt_allocators_init(); err = gt_error_new(); gt_error_set_progname(err, argv[0]); tool = tool_constructor(); had_err = gt_tool_run(tool, argc, (const char**) argv, err); gt_tool_delete(tool); if (gt_error_is_set(err)) { fprintf(stderr, "%s: error: %s\n", gt_error_get_progname(err), gt_error_get(err)); gt_assert(had_err); } gt_error_delete(err); if (gt_allocators_clean()) return 2; /* programmer error */ if (had_err) return EXIT_FAILURE; return EXIT_SUCCESS; }
void gt_toolinfo_delete(GtToolinfo *toolinfo) { if (!toolinfo) return; gt_tool_delete(toolinfo->tool); gt_free(toolinfo); }