]> granicus.if.org Git - python/commitdiff
Some cleanup.
authorFred Drake <fdrake@acm.org>
Mon, 23 Nov 1998 15:14:18 +0000 (15:14 +0000)
committerFred Drake <fdrake@acm.org>
Mon, 23 Nov 1998 15:14:18 +0000 (15:14 +0000)
Don't duplicate the information on what's empty; rely on the input
data for that.  (This means that the DOM may need more work.)

Doc/tools/esis2sgml.py

index 442d4083e055ff2ba307f325ba0f5a2befcc3e20..5f8c6e835161cb67d98bd86aadc1c26c5367ff17 100755 (executable)
@@ -1,10 +1,13 @@
 #! /usr/bin/env python
 
-"""
+"""Convert ESIS events to SGML or XML markup.
+
+This is limited, but seems sufficient for the ESIS generated by the
+latex2esis.py script when run over the Python documentation.
 """
 __version__ = '$Revision$'
 
-
+import errno
 import re
 import string
 
@@ -64,6 +67,9 @@ def do_convert(ifp, ofp, knownempties, xml=0):
                 ofp.write("<%s%s/>" % (data, format_attrs(attrs)))
             else:
                 ofp.write("<%s%s>" % (data, format_attrs(attrs)))
+            if knownempty and data not in knownempties:
+                # accumulate knowledge!
+                knownempties.append(data)
             attrs = {}
             lastopened = data
             lastempty = knownempty
@@ -87,11 +93,11 @@ def do_convert(ifp, ofp, knownempties, xml=0):
 
 
 def sgml_convert(ifp, ofp, knownempties=()):
-    return do_convert(ifp, ofp, knownempties, xml=0)
+    return do_convert(ifp, ofp, list(knownempties), xml=0)
 
 
-def xml_convert(ifp, ofp, knownempties=[]):
-    return do_convert(ifp, ofp, knownempties, xml=1)
+def xml_convert(ifp, ofp, knownempties=()):
+    return do_convert(ifp, ofp, list(knownempties), xml=1)
 
 
 def main():
@@ -114,11 +120,11 @@ def main():
         usage()
         sys.exit(2)
     # knownempties is ignored in the XML version
-    convert(ifp, ofp, knownempties=["rfc", "POSIX", "ASCII", "declaremodule",
-                                    "maketitle", "makeindex", "makemodindex",
-                                    "localmoduletable", "ABC", "UNIX", "Cpp",
-                                    "C", "EOF", "NULL", "manpage", "input",
-                                    "label"])
+    try:
+        convert(ifp, ofp)
+    except IOError, (err, msg):
+        if err != errno.EPIPE:
+            raise
 
 
 if __name__ == "__main__":