empty string (meaning the current directory); otherwise it is
`dir/'. */
-static char *all_but_ext;
+char *all_but_ext;
static char *all_but_tab_ext;
char *dir_prefix;
static void
compute_exts_from_gf (const char *ext)
{
- src_extension = xstrdup (ext);
- header_extension = xstrdup (ext);
- tr (src_extension, 'y', 'c');
- tr (src_extension, 'Y', 'C');
- tr (header_extension, 'y', 'h');
- tr (header_extension, 'Y', 'H');
+ if (strcmp (ext, ".y") == 0)
+ {
+ src_extension = xstrdup (language->src_extension);
+ header_extension = xstrdup (language->header_extension);
+ }
+ else
+ {
+ src_extension = xstrdup (ext);
+ header_extension = xstrdup (ext);
+ tr (src_extension, 'y', 'c');
+ tr (src_extension, 'Y', 'C');
+ tr (header_extension, 'y', 'h');
+ tr (header_extension, 'Y', 'H');
+ }
}
/* Compute extensions from the given c source file extension. */
xstrndup (base, (strlen (base) - (ext ? strlen (ext) : 0)));
}
- all_but_ext = concat2 (all_but_tab_ext, TAB_EXT);
+ if (language->add_tab)
+ all_but_ext = concat2 (all_but_tab_ext, TAB_EXT);
+ else
+ all_but_ext = xstrdup (all_but_tab_ext);
/* Compute the extensions from the grammar file name. */
if (ext && !yacc_flag)
output_file_name_check (spec_verbose_file);
}
- free (all_but_ext);
free (all_but_tab_ext);
free (src_extension);
free (header_extension);
void
output_file_names_free (void)
{
+ free (all_but_ext);
free (spec_verbose_file);
free (spec_graph_file);
free (spec_defines_file);