* src/files.c (obstack_save): New function.
(done): Rename as...
(output_files): this.
Use `obstack_save'.
* src/main.c (main): Don't use `atexit' to register `done', since
it no longer has to remove tmp files, just call `output_files'
when there are no errors.
+2000-11-03 Akim Demaille <akim@epita.fr>
+
+ Don't use `atexit'.
+
+ * src/files.c (obstack_save): New function.
+ (done): Rename as...
+ (output_files): this.
+ Use `obstack_save'.
+ * src/main.c (main): Don't use `atexit' to register `done', since
+ it no longer has to remove tmp files, just call `output_files'
+ when there are no errors.
+
2000-11-02 Akim Demaille <akim@epita.fr>
* src/files.c [VMS]: No longer include `ssdef.h', no longer define
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-11-02 12:45+0100\n"
+"POT-Creation-Date: 2000-11-03 17:35+0100\n"
"PO-Revision-Date: 1996-10-10 17:54 MET DST\n"
"Last-Translator: Ulrich Drepper <drepper@gnu.ai.mit.edu>\n"
"Language-Team: German <de@li.org>\n"
msgid "use \"...\" for multi-character literal tokens"
msgstr "für Literal mit mehreren Zeichen bitte \"...\" verwenden"
-#: src/main.c:104
+#: src/main.c:103
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interner Fehler, %s\n"
"Reduzierung von %s definiert %d Terminal, %d Nicht-Terminal und %d "
"Produktionen.\n"
+#: lib/error.c:102
+msgid "Unknown system error"
+msgstr ""
+
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: die Option »--%s« erlaubt kein Argument\n"
+#: lib/obstack.c:477
+#, fuzzy
+msgid "memory exhausted"
+msgstr "%s: Hauptspeicher erschöpft\n"
+
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'". If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK). A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#: lib/quotearg.c:262
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:263
+msgid "'"
+msgstr ""
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+#, fuzzy
+msgid "Memory exhausted"
+msgstr "%s: Hauptspeicher erschöpft\n"
+
#~ msgid "$%s is invalid"
#~ msgstr "$%s ist unzulässig"
-#~ msgid "%s: memory exhausted\n"
-#~ msgstr "%s: Hauptspeicher erschöpft\n"
-
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "schließende geschweifte Klammer (»}«) hat kein Gegenstück"
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.25\n"
-"POT-Creation-Date: 2000-11-02 12:45+0100\n"
+"POT-Creation-Date: 2000-11-03 17:35+0100\n"
"PO-Revision-Date: 1998-09-21 10:19+0200\n"
"Last-Translator: Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>\n"
"Language-Team: Spanish <es@li.org>\n"
msgid "use \"...\" for multi-character literal tokens"
msgstr "use \"...\" para terminales literales multicarácter"
-#: src/main.c:104
+#: src/main.c:103
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "error interno, %s\n"
"la reducción de %s define %d terminal%s, %d no terminal%s, y %d "
"produccion%s.\n"
+#: lib/error.c:102
+msgid "Unknown system error"
+msgstr ""
+
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: la opción `--%s' no admite ningún argumento\n"
+#: lib/obstack.c:477
+#, fuzzy
+msgid "memory exhausted"
+msgstr "%s: memoria agotada\n"
+
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'". If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK). A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#: lib/quotearg.c:262
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:263
+msgid "'"
+msgstr ""
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+#, fuzzy
+msgid "Memory exhausted"
+msgstr "%s: memoria agotada\n"
+
#~ msgid "$%s is invalid"
#~ msgstr "$%s no es válida"
-#~ msgid "%s: memory exhausted\n"
-#~ msgstr "%s: memoria agotada\n"
-
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "llave de cierre (`}') desemparejada"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-11-02 12:45+0100\n"
+"POT-Creation-Date: 2000-11-03 17:35+0100\n"
"PO-Revision-Date: 2000-04-11 22:19+02:00\n"
"Last-Translator: Toomas Soome <tsoome@ut.ee>\n"
"Language-Team: Estonian <et@li.org>\n"
msgid "use \"...\" for multi-character literal tokens"
msgstr "kasuta mitmesümboliliste literaalidega \"...\" konstruktsiooni"
-#: src/main.c:104
+#: src/main.c:103
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: sisemine viga: %s\n"
"redutseeritud %s defineerib %d terminali%s, %d mitteterminali%s ja %d "
"reeglit%s.\n"
+#: lib/error.c:102
+msgid "Unknown system error"
+msgstr ""
+
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: võti `-W %s' ei luba argumenti\n"
+#: lib/obstack.c:477
+#, fuzzy
+msgid "memory exhausted"
+msgstr "%s: mälu on otsas\n"
+
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'". If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK). A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#: lib/quotearg.c:262
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:263
+msgid "'"
+msgstr ""
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+#, fuzzy
+msgid "Memory exhausted"
+msgstr "%s: mälu on otsas\n"
+
#~ msgid "$%s is invalid"
#~ msgstr "$%s on vigane"
-#~ msgid "%s: memory exhausted\n"
-#~ msgstr "%s: mälu on otsas\n"
-
#~ msgid "multiple %union declarations"
#~ msgstr "korduvad %union deklaratsioonid"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-11-02 12:45+0100\n"
+"POT-Creation-Date: 2000-11-03 17:35+0100\n"
"PO-Revision-Date: 1996-03-19 20:05 EST\n"
"Last-Translator: Dominique Boucher <boucherd@IRO.UMontreal.CA>\n"
"Language-Team: French <fr@li.org>\n"
msgid "use \"...\" for multi-character literal tokens"
msgstr "utilisez \"...\" pour les terminaux litéraux de plusieurs caractères"
-#: src/main.c:104
+#: src/main.c:103
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "erreur interne, %s\n"
"la réduction de %s définit %d terminal%s, %d catégorie%s et %d "
"production%s.\n"
+#: lib/error.c:102
+msgid "Unknown system error"
+msgstr ""
+
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: l'option --%s n'admet pas de paramètre\n"
+#: lib/obstack.c:477
+#, fuzzy
+msgid "memory exhausted"
+msgstr "%s: mémoire épuisée\n"
+
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'". If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK). A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#: lib/quotearg.c:262
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:263
+msgid "'"
+msgstr ""
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+#, fuzzy
+msgid "Memory exhausted"
+msgstr "%s: mémoire épuisée\n"
+
#~ msgid "$%s is invalid"
#~ msgstr "$%s n'est pas valide"
-#~ msgid "%s: memory exhausted\n"
-#~ msgstr "%s: mémoire épuisée\n"
-
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "accolade fermante `}' non appariée"
msgid ""
msgstr ""
"Project-Id-Version: GNU bison 1.28\n"
-"POT-Creation-Date: 2000-11-02 12:45+0100\n"
+"POT-Creation-Date: 2000-11-03 17:35+0100\n"
"PO-Revision-Date: 1999-09-28 21:10+0900\n"
"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
"Language-Team: Japanese <ja@li.org>\n"
msgid "use \"...\" for multi-character literal tokens"
msgstr "Ê£¿ôʸ»ú¤Î¥ê¥Æ¥é¥ë¥È¡¼¥¯¥ó¤Ë¤Ï \"...\" ¤ò»È¤¤¤Þ¤·¤ç¤¦"
-#: src/main.c:104
+#: src/main.c:103
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: ÆâÉô¥¨¥é¡¼: %s\n"
"´Ô¸µ¥Õ¥¡¥¤¥ë %s ¤Ç %d ¸Ä¤Î½ªÃ¼»Ò%.0s, %d ¸Ä¤ÎÈó½ªÃ¼»Ò%.0s, %d "
"¸Ä¤Îµ¬Â§%.0s¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿\n"
+#: lib/error.c:102
+msgid "Unknown system error"
+msgstr ""
+
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: ¥ª¥×¥·¥ç¥ó `-W %s' ¤Ï°ú¿ô¤òµö¤·¤Þ¤»¤ó\n"
+#: lib/obstack.c:477
+#, fuzzy
+msgid "memory exhausted"
+msgstr "%s: ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿\n"
+
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'". If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK). A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#: lib/quotearg.c:262
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:263
+msgid "'"
+msgstr ""
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+#, fuzzy
+msgid "Memory exhausted"
+msgstr "%s: ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿\n"
+
#~ msgid "$%s is invalid"
#~ msgstr "$%s ¤Ï̵¸ú¤Ç¤¹"
-#~ msgid "%s: memory exhausted\n"
-#~ msgstr "%s: ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿\n"
-
#~ msgid ""
#~ "\n"
#~ "\n"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.25\n"
-"POT-Creation-Date: 2000-11-02 12:45+0100\n"
+"POT-Creation-Date: 2000-11-03 17:35+0100\n"
"PO-Revision-Date: 1996-08-27 15:34 MET DST\n"
"Last-Translator: Erick Branderhorst <branderh@debian.org>\n"
"Language-Team: Dutch <nl@li.org>\n"
msgid "use \"...\" for multi-character literal tokens"
msgstr "gebruik \"...\" voor meerdere karakters literal tekens"
-#: src/main.c:104
+#: src/main.c:103
#, fuzzy, c-format
msgid "%s: internal error: %s\n"
msgstr "interne fout, %s\n"
"gereduceerd %s gedefinieerd %d terminal%s, %d nietterminal%s, en %d "
"productie%s.\n"
+#: lib/error.c:102
+msgid "Unknown system error"
+msgstr ""
+
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: optie `--%s' staat geen argument toe\n"
+#: lib/obstack.c:477
+#, fuzzy
+msgid "memory exhausted"
+msgstr "%s: geen geheugen meer beschikbaar\n"
+
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'". If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK). A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#: lib/quotearg.c:262
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:263
+msgid "'"
+msgstr ""
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+#, fuzzy
+msgid "Memory exhausted"
+msgstr "%s: geen geheugen meer beschikbaar\n"
+
#~ msgid "$%s is invalid"
#~ msgstr "$%s is onjuist"
-#~ msgid "%s: memory exhausted\n"
-#~ msgstr "%s: geen geheugen meer beschikbaar\n"
-
#~ msgid "unmatched close-brace (`}')"
#~ msgstr "niet overeenkomstige afsluit-haakje (`}')"
msgid ""
msgstr ""
"Project-Id-Version: bison 1.28a\n"
-"POT-Creation-Date: 2000-11-02 12:45+0100\n"
+"POT-Creation-Date: 2000-11-03 17:35+0100\n"
"PO-Revision-Date: 2000-04-12 13:16+04:00\n"
"Last-Translator: Dmitry S. Sivachenko <dima@Chg.RU>\n"
"Language-Team: Russian <ru@li.org>\n"
msgid "use \"...\" for multi-character literal tokens"
msgstr "ÉÓÐÏÌØÚÕÊÔÅ \"...\" ÄÌÑ ÍÎÏÇÏÓÉÍ×ÏÌØÎÙÈ ÌÉÔÅÒÁÌØÎÙÈ ÌÅËÓÅÍ"
-#: src/main.c:104
+#: src/main.c:103
#, c-format
msgid "%s: internal error: %s\n"
msgstr "%s: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: %s\n"
"×Ù×ÅÄÅÎÎÙÊ %s ÏÐÒÅÄÅÌÑÅÔ %d ÔÅÒÍÉÎÁÌÏ×%s, %d ÎÅÔÅÒÍÉÎÁÌÏ×%s, É %d ÐÒÁ×ÉÌ "
"×Ù×ÏÄÁ%s.\n"
+#: lib/error.c:102
+msgid "Unknown system error"
+msgstr ""
+
#: lib/getopt.c:675
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
+#: lib/obstack.c:477
+#, fuzzy
+msgid "memory exhausted"
+msgstr "%s: ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ\n"
+
+#. Get translations for open and closing quotation marks.
+#.
+#. The message catalog should translate "`" to a left
+#. quotation mark suitable for the locale, and similarly for
+#. "'". If the catalog has no translation,
+#. locale_quoting_style quotes `like this', and
+#. clocale_quoting_style quotes "like this".
+#.
+#. For example, an American English Unicode locale should
+#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
+#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
+#. MARK). A British English Unicode locale should instead
+#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+#: lib/quotearg.c:262
+msgid "`"
+msgstr ""
+
+#: lib/quotearg.c:263
+msgid "'"
+msgstr ""
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+#, fuzzy
+msgid "Memory exhausted"
+msgstr "%s: ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ\n"
+
#~ msgid "$%s is invalid"
#~ msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË $%s"
-#~ msgid "%s: memory exhausted\n"
-#~ msgstr "%s: ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ\n"
-
#~ msgid "multiple %union declarations"
#~ msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %union"
return result;
}
+
+/*--------------------------------------------------.
+| Save the content of the obstack OBS in FILENAME. |
+`--------------------------------------------------*/
+
+void
+obstack_save (struct obstack *obs, const char *filename)
+{
+ FILE *out = xfopen (filename, "w");
+ size_t size = obstack_object_size (obs);
+ fwrite (obstack_finish (obs), 1, size, out);
+ xfclose (out);
+}
+
\f
-/* JF this has been hacked to death. Nowaday it sets up the file names for
- the output files, and opens the tmp files and the parser */
+/*-----------------------------------------------------------------.
+| Open the input file. Look for the skeletons. Find the names of |
+| the output files. Prepare the obstacks. |
+`-----------------------------------------------------------------*/
+
void
open_files (void)
{
fguard = xfopen (guardfile, "w");
}
+
+/*-----------------------------------------------------.
+| Close the open files, produce all the output files. |
+`-----------------------------------------------------*/
+
void
-done (void)
+output_files (void)
{
xfclose (fguard);
xfclose (finput);
xfclose (fparser);
xfclose (foutput);
- /* JF write out the output file */
- if (!complain_message_count)
- {
- /* Output the main file. */
- FILE *ftab = xfopen (tabfile, "w");
- size_t size = obstack_object_size (&table_obstack);
- fwrite (obstack_finish (&table_obstack), 1, size, ftab);
- xfclose (ftab);
-
- /* Output the header file is wanted. */
- if (defines_flag)
- {
- FILE *fdefs = xfopen (defsfile, "w");
- size_t size = obstack_object_size (&defines_obstack);
- fwrite (obstack_finish (&defines_obstack), 1, size, fdefs);
- xfclose (fdefs);
- }
- }
+ /* Output the main file. */
+ obstack_save (&table_obstack, tabfile);
+
+ /* Output the header file if wanted. */
+ if (defines_flag)
+ obstack_save (&defines_obstack, defsfile);
- /* If we output only the table, dump the actions in ACTION_OBSTACK.
+ /* If we output only the table, dump the actions in ACTFILE.
*/
if (no_parser_flag)
- {
- FILE *faction = xfopen (actfile, "w");
- size_t size = obstack_object_size (&action_obstack);
- fwrite (obstack_finish (&action_obstack), 1, size, faction);
- xfclose (faction);
- }
+ obstack_save (&action_obstack, actfile);
/* If we produced a semantic parser ATTRS_OBSTACK must be dumped
into its own file, ATTTRSFILE. */
if (semantic_parser)
- {
- FILE *fattrs = xfopen (attrsfile, "w");
- size_t size = obstack_object_size (&attrs_obstack);
- fwrite (obstack_finish (&attrs_obstack), 1, size, fattrs);
- xfclose (fattrs);
- }
-
-/* Don't call exit again, we're in atexit ().
- exit (complain_message_count ? 1 : 0); */
+ obstack_save (&attrs_obstack, attrsfile);
}
void open_files PARAMS((void));
void open_extra_files PARAMS((void));
-void done PARAMS((void));
+void output_files PARAMS((void));
#endif /* !FILES_H_ */
lineno = 0;
getargs (argc, argv);
- /* Be ready to clean up if we exit. */
- atexit (done);
-
open_files ();
/* Read the input. Copy some parts of it to FGUARD, FACTION, FTABLE
free_nullable ();
free_derives ();
+ if (!complain_message_count)
+ output_files ();
+
exit (complain_message_count ? 1 : 0);
}
\f