void compute_output_file_names (void) { compute_file_name_parts (); /* If not yet done. */ if (!src_extension) src_extension = xstrdup (".c"); if (!header_extension) header_extension = xstrdup (".h"); parser_file_name = (spec_outfile ? xstrdup (spec_outfile) : concat2 (all_but_ext, src_extension)); if (defines_flag) { if (! spec_defines_file) spec_defines_file = concat2 (all_but_ext, header_extension); } if (graph_flag) { if (! spec_graph_file) spec_graph_file = concat2 (all_but_tab_ext, ".dot"); output_file_name_check (&spec_graph_file); } if (xml_flag) { if (! spec_xml_file) spec_xml_file = concat2 (all_but_tab_ext, ".xml"); output_file_name_check (&spec_xml_file); } if (report_flag) { if (!spec_verbose_file) spec_verbose_file = concat2 (all_but_tab_ext, OUTPUT_EXT); output_file_name_check (&spec_verbose_file); } free (all_but_tab_ext); free (src_extension); free (header_extension); }
void compute_output_file_names (void) { char const *name[4]; int i; int j; int names = 0; compute_file_name_parts (); /* If not yet done. */ if (!src_extension) src_extension = ".c"; if (!header_extension) header_extension = ".h"; name[names++] = parser_file_name = spec_outfile ? spec_outfile : concat2 (all_but_ext, src_extension); if (defines_flag) { if (! spec_defines_file) spec_defines_file = concat2 (all_but_ext, header_extension); name[names++] = spec_defines_file; } if (graph_flag) { if (! spec_graph_file) spec_graph_file = concat2 (all_but_tab_ext, ".vcg"); name[names++] = spec_graph_file; } if (report_flag) { spec_verbose_file = concat2 (all_but_tab_ext, OUTPUT_EXT); name[names++] = spec_verbose_file; } for (j = 0; j < names; j++) for (i = 0; i < j; i++) if (strcmp (name[i], name[j]) == 0) warn (_("conflicting outputs to file %s"), quote (name[i])); }