+}
+
+
+/*-------------------------------------------------------.
+| Close the open files, compute the output files names. |
+`-------------------------------------------------------*/
+
+void
+compute_output_file_names (void)
+{
+ compute_base_names ();
+
+ /* If not yet done. */
+ if (!src_extension)
+ src_extension = ".c";
+ if (!header_extension)
+ header_extension = ".h";
+
+ /* It the defines filename if not given, we create it. */
+ if (!spec_defines_file)
+ spec_defines_file = stringappend (full_base_name, header_extension);
+
+ if (defines_flag)
+ {
+ /* This is really Q&D, but I don't want to spend time on issues
+ which will be different with 1.50. */
+ const char *parser_filename = NULL;
+ if (spec_outfile)
+ parser_filename = spec_outfile;
+ else
+ parser_filename = stringappend (full_base_name, src_extension);
+ if (!strcmp (spec_defines_file, parser_filename))
+ fatal ("header and parser would be both named %s",
+ quote (parser_filename));
+ }
+
+ /* It the graph filename if not given, we create it. */
+ if (!spec_graph_file)
+ spec_graph_file = stringappend (short_base_name, ".vcg");
+
+ spec_verbose_file = stringappend (short_base_name, EXT_OUTPUT);
+
+ attrsfile = stringappend (short_base_name, EXT_STYPE_H);
+ attrsfile = stringappend (attrsfile, EXT_TYPE (header_extension));