- spec_verbose_file = concat2 (short_base_name, OUTPUT_EXT);
- name[names++] = spec_verbose_file;
+ if (!spec_verbose_file)
+ spec_verbose_file = concat2 (all_but_tab_ext, OUTPUT_EXT);
+ output_file_name_check (&spec_verbose_file, false);
+ }
+
+ free (all_but_tab_ext);
+ free (src_extension);
+ free (header_extension);
+}
+
+void
+output_file_name_check (char **file_name, bool source)
+{
+ bool conflict = false;
+ if (STREQ (*file_name, grammar_file))
+ {
+ complain (NULL, complaint, _("refusing to overwrite the input file %s"),
+ quote (*file_name));
+ conflict = true;
+ }
+ else
+ {
+ int i;
+ for (i = 0; i < generated_files_size; i++)
+ if (STREQ (generated_files[i].name, *file_name))
+ {
+ complain (NULL, Wother, _("conflicting outputs to file %s"),
+ quote (generated_files[i].name));
+ conflict = true;
+ }