-static char *
-stringappend (const char *string1, int end1, const char *string2)
-{
- register char *ostring;
- register char *cp;
- register const char *cp1;
- register int i;
+/* Initializing some values below (such SPEC_NAME_PREFIX to `yy') is
+ tempting, but don't do that: for the time being our handling of the
+ %directive vs --option leaves precedence to the options by deciding
+ that if a %directive sets a variable which is really set (i.e., not
+ NULL), then the %directive is ignored. As a result, %name-prefix,
+ for instance, will not be honored. */
+
+char const *spec_outfile = NULL; /* for -o. */
+char const *spec_file_prefix = NULL; /* for -b. */
+char const *spec_name_prefix = NULL; /* for -p. */
+char *spec_verbose_file = NULL; /* for --verbose. */
+char *spec_graph_file = NULL; /* for -g. */
+char *spec_defines_file = NULL; /* for --defines. */
+char *parser_file_name;
+
+/* All computed output file names. */
+static char **file_names = NULL;
+static int file_names_count = 0;
+
+uniqstr grammar_file = NULL;
+uniqstr current_file = NULL;