+2002-11-12 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo (Destructor Decl): New.
+
+2002-11-12 Akim Demaille <akim@epita.fr>
+
+ * src/tables.c (tables_generate): Use free for pointers that
+ cannot be NULL, not XFREE.
+ (pack_vector): Use assert, not fatal, for bound violations.
+ * src/state.c (state_new): Likewise.
+ * src/reader.c (reader): Likewise.
+ * src/lalr.c (set_goto_map): Likewise.
+ * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
+ the file name.
+
+2002-11-12 Akim Demaille <akim@epita.fr>
+
+ * src/scan-gram.l, src/reader.h (scanner_last_string_free):
+ Restore.
+ * src/scan-gram.l (last_string): Is global to the file, not to
+ yylex.
+ * src/parse-gram.y (input): Don't append the epilogue here,
+ (epilogue.opt): do it here, and free the scanner's obstack.
+ * src/reader.c (epilogue_set): Rename as...
+ (epilogue_augment): this.
+ * data/c.m4 (b4_epilogue): Defaults to empty.
+
+2002-11-12 Akim Demaille <akim@epita.fr>
+
+ * src/getargs.c (long_options): Remove duplicates.
+ * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
+ Remove.
+ * doc/bison.rnh: Remove.
+ * doc/bison.texinfo (VMS Invocation): Remove.
+
+2002-11-12 Akim Demaille <akim@epita.fr>
+
+ * src/struniq.h, src/struniq.c (struniq_t): Is const.
+ (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
+
+ Use struniq for symbols.
+
+ * src/symtab.h (symbol_t): The tag member is a struniq.
+ (symbol_type_set): Adjust.
+ * src/symtab.c (symbol_new): Takes a struniq.
+ (symbol_free): Don't free the tag member.
+ (hash_compare_symbol_t, hash_symbol_t): Rename as...
+ (hash_compare_symbol, hash_symbol): these.
+ Use the fact that tags as struniqs.
+ (symbol_get): Use struniq_new.
+ * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
+ Returns a strniq.
+ * src/reader.h (merger_list, grammar_currentmerge_set): The name
+ and type members are struniqs.
+ * src/reader.c (get_merge_function)
+ (grammar_current_rule_merge_set): Adjust.
+ (TYPE, current_type): Are struniq.
+
+ Use struniq for file names.
+
+ * src/files.h, src/files.c (infile): Split into...
+ (grammar_file, current_file): these.
+ * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
+ * src/reduce.c (reduce_print): Likewise.
+ * src/getargs.c (getargs): Likewise.
+ * src/complain.h, src/complain.c: Likewise.
+ * src/main.c (main): Call struniqs_new early enough to use it for
+ file names.
+ Don't free the input file name.
+
+2002-11-12 Akim Demaille <akim@epita.fr>
+
+ * src/symtab.c (symbol_free): Remove dead deactivated code:
+ type_name are properly removed.
+ Don't use XFREE to free items that cannot be NULL.
+ * src/struniq.h, src/struniq.c: New.
+ * src/main.c (main): Initialize/free struniqs.
+ * src/parse-gram.y (%union): Add astruniq member.
+ (yyprint): Adjust.
+ * src/scan-gram.l (<{tag}>): Return a struniq.
+ Free the obstack bit that used to store it.
+ * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
+
2002-11-11 Paul Eggert <eggert@twinsun.com>
Revamp to fix many (but not all) of the C- and M4-related quoting