int gt_gff3_to_gtf(int argc, const char **argv, GtError *err) { GtNodeStream *gff3_in_stream = NULL, *gtf_out_stream = NULL; int parsed_args, had_err = 0; gt_error_check(err); /* option parsing */ switch (parse_options(&parsed_args, argc, argv, err)) { case OPTIONPARSER_OK: break; case OPTIONPARSER_ERROR: return -1; case OPTIONPARSER_REQUESTS_EXIT: return 0; } /* create a gff3 input stream */ gff3_in_stream = gt_gff3_in_stream_new_unsorted(argc - parsed_args, argv + parsed_args); if (!gff3_in_stream) had_err = -1; if (!had_err) { /* create a gtf output stream */ gtf_out_stream = gt_gtf_out_stream_new(gff3_in_stream, NULL); /* pull the features through the stream and free them afterwards */ had_err = gt_node_stream_pull(gtf_out_stream, err); } /* free */ gt_node_stream_delete(gff3_in_stream); gt_node_stream_delete(gtf_out_stream); return had_err; }
static int gt_gff3_to_gtf_runner(int argc, const char **argv, int parsed_args, void *tool_arguments, GtError *err) { GFF3ToGTFArguments *arguments = tool_arguments; GtNodeStream *gff3_in_stream = NULL, *gtf_out_stream = NULL; int had_err; gt_error_check(err); gt_assert(arguments); /* create a gff3 input stream */ gff3_in_stream = gt_gff3_in_stream_new_unsorted(argc - parsed_args, argv + parsed_args); /* create a gtf output stream */ gtf_out_stream = gt_gtf_out_stream_new(gff3_in_stream, arguments->outfp); /* pull the features through the stream and free them afterwards */ had_err = gt_node_stream_pull(gtf_out_stream, err); /* free */ gt_node_stream_delete(gff3_in_stream); gt_node_stream_delete(gtf_out_stream); return had_err; }