+2001-08-14 Marc Autret <autret_m@epita.fr>
+
+ Turn on %{source,header}_extension features.
+
+ * src/lex.c (percent_table): Un-CPP out header_extension and
+ source_extension.
+ * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
+ (compute_exts_from_src): Remove conditions. It restores priorities
+ between options.
+
2001-08-14 Marc Autret <autret_m@epita.fr>
* src/files.c (compute_base_names): Add extensions computing when
of the #line lines with path names including backslashes.
* New directives.
- `%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose' and
- `%debug'.
+ `%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose',
+ `%debug', `%source_extension' and `%header_extension'.
\f
Changes in version 1.28:
static void
compute_exts_from_gf(const char *ext)
{
- if (!src_extension)
+ /* Checks if SRC_EXTENSION is NULL. In the other case, %source_extension
+ was specified in the grammar file. */
+ if (src_extension == NULL)
{
src_extension = tr(ext, 'y', 'c');
src_extension = tr(src_extension, 'Y', 'C');
}
- if (!header_extension)
+ /* Checks if HEADER_EXTENSION is NULL. In the other case,
+ %header_extension was specified in the grammar file. */
+ if (header_extension == NULL)
{
header_extension = tr(ext, 'y', 'h');
header_extension = tr(header_extension, 'Y', 'H');
static void
compute_exts_from_src(const char *ext)
{
- if (!src_extension)
- src_extension = xstrdup(ext);
- if (!header_extension)
- {
- header_extension = tr(ext, 'c', 'h');
- header_extension = tr(header_extension, 'C', 'H');
- }
+ /* We use this function when the user specifies `-o' or `--output',
+ so the extenions must be computed unconditionally from the file name
+ given by this option. */
+ src_extension = xstrdup(ext);
+ header_extension = tr(ext, 'c', 'h');
+ header_extension = tr(header_extension, 'C', 'H');
}
/* FIXME: Should use xstrndup. */
{ "output_file", &spec_outfile, tok_setopt }, /* -o */
{ "file_prefix", &spec_file_prefix, tok_setopt }, /* -b */
{ "name_prefix", &spec_name_prefix, tok_setopt }, /* -p */
+#endif
{ "header_extension", NULL, tok_hdrext},
{ "source_extension", NULL, tok_srcext},
-#endif
{ "verbose", &verbose_flag, tok_noop }, /* -v */
{ "debug", &debug_flag, tok_noop }, /* -t */
{ "semantic_parser", &semantic_parser, tok_noop },