]> git.saurik.com Git - bison.git/commitdiff
Don't use `atexit'.
authorAkim Demaille <akim@epita.fr>
Fri, 3 Nov 2000 16:52:45 +0000 (16:52 +0000)
committerAkim Demaille <akim@epita.fr>
Fri, 3 Nov 2000 16:52:45 +0000 (16:52 +0000)
* 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.

ChangeLog
po/de.po
po/es.po
po/et.po
po/fr.po
po/ja.po
po/nl.po
po/ru.po
src/files.c
src/files.h
src/main.c

index e48feda72503cb730f5b749a9326bd8f8bec239f..6f84dacb2f89fc71841222c08a79de7d38b89a2c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+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
index 20bbad852afbcf6a9ebbd5660c3c0fe7715f19d7..c5dd45c91600c1f9e920172fdf5ef831107b885e 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -5,7 +5,7 @@
 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"
@@ -249,7 +249,7 @@ msgstr "unerwarteter Typname"
 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"
@@ -674,6 +674,10 @@ msgstr ""
 "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"
@@ -733,12 +737,43 @@ msgstr "%s: die Option 
 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"
 
index 282936b1edaca65b14e30422ed40360e8e05ab6d..7f700560e2b42f244174948bea8092877f43a0d4 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -30,7 +30,7 @@
 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"
@@ -310,7 +310,7 @@ msgstr "nombre de tipo sin terminar"
 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"
@@ -778,6 +778,10 @@ msgstr ""
 "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"
@@ -861,12 +865,43 @@ msgstr "%s: la opci
 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"
 
index 31d70c95b8c0bdada5eec1724a56dcd8a546d3cf..3d520b4063717fb7a89128d3b00556b1c6989dcd 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -5,7 +5,7 @@
 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"
@@ -272,7 +272,7 @@ msgstr "l
 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"
@@ -693,6 +693,10 @@ msgstr ""
 "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"
@@ -752,12 +756,43 @@ msgstr "%s: v
 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"
 
index 0d9bd6d12b371027be300c055126edba644cc77f..b0d2555a41785eeec55b4e34c9ef69ee01820d3f 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -5,7 +5,7 @@
 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"
@@ -255,7 +255,7 @@ msgstr "le nom de type ne se termine pas"
 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"
@@ -678,6 +678,10 @@ msgstr ""
 "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"
@@ -737,12 +741,43 @@ msgstr "%s: l'option %s est ambig
 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"
 
index e0d637d137c90fa1cb5e053423ee60008d82c354..0bb41cf4bd53eebf159010acfe6987393d9711cd 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -5,7 +5,7 @@
 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"
@@ -254,7 +254,7 @@ msgstr "
 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"
@@ -676,6 +676,10 @@ msgstr ""
 "´Ô¸µ¥Õ¥¡¥¤¥ë %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"
@@ -735,12 +739,43 @@ msgstr "%s: 
 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"
index 833771398f2362e722fa7cd47fb51f39ff81deca..68eb4bd5a0be1c5e3c9406dd647f695ef357b452 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -5,7 +5,7 @@
 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"
@@ -254,7 +254,7 @@ msgstr "niet getermineerd type naam"
 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"
@@ -677,6 +677,10 @@ msgstr ""
 "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"
@@ -736,12 +740,43 @@ msgstr "%s: optie `%s' is niet eenduidig\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 (`}')"
 
index a678efe2984e10a5ff8a33d99e0d0dbb2612c757..bc5b1c9e50f9eac44a2ffd9539b51f43ff5a0099 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -5,7 +5,7 @@
 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"
@@ -274,7 +274,7 @@ msgstr "
 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"
@@ -694,6 +694,10 @@ msgstr ""
 "×Ù×ÅÄÅÎÎÙÊ %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"
@@ -753,12 +757,43 @@ msgstr "%s: 
 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"
 
index 7e0b24a4955f093d2eb0974df3edfacf31019ee3..3e52ff66e8299b734381fa60302dcaa21ad11a63 100644 (file)
@@ -136,9 +136,26 @@ xfclose (FILE *ptr)
 
   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)
 {
@@ -358,53 +375,33 @@ open_extra_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);
 }
index c0d4a362101c8cf936c3cd971c7f7046ca44aef7..961b3d4b0500cf6d6a48a7f1878820b7ae7d7ed5 100644 (file)
@@ -76,5 +76,5 @@ extern char *actfile;
 void open_files PARAMS((void));
 void open_extra_files PARAMS((void));
 
-void done PARAMS((void));
+void output_files PARAMS((void));
 #endif /* !FILES_H_ */
index d14657a14b32948dd33b7a1ca94ce03f0add4553..1b3a45a15f95fe671f9f556176063379e059c94b 100644 (file)
@@ -50,9 +50,6 @@ main (int argc, char *argv[])
   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
@@ -93,6 +90,9 @@ main (int argc, char *argv[])
   free_nullable ();
   free_derives ();
 
+  if (!complain_message_count)
+    output_files ();
+
   exit (complain_message_count ? 1 : 0);
 }
 \f