Ripped out the old conversion.
diff --git a/Doc/tools/sgmlconv/latex2esis.py b/Doc/tools/sgmlconv/latex2esis.py
index 051c374..bc28562 100755
--- a/Doc/tools/sgmlconv/latex2esis.py
+++ b/Doc/tools/sgmlconv/latex2esis.py
@@ -135,239 +135,6 @@
 
 
 class Conversion(BaseConversion):
-    def subconvert(self, endchar=None, depth=0):
-        stack = self.stack
-        line = self.line
-        while line:
-            if line[0] == endchar and not stack:
-                self.line = line
-                return line
-            m = _comment_rx.match(line)
-            if m:
-                text = m.group(1)
-                if text:
-                    self.write("(COMMENT\n- %s \n)COMMENT\n-\\n\n"
-                               % encode(text))
-                line = line[m.end():]
-                continue
-            m = _begin_env_rx.match(line)
-            if m:
-                # re-write to use the macro handler
-                line = r"\%s %s" % (m.group(1), line[m.end():])
-                continue
-            m = _end_env_rx.match(line)
-            if m:
-                # end of environment
-                envname = m.group(1)
-                if envname == "document":
-                    # special magic
-                    for n in stack[1:]:
-                        if n not in self.autoclosing:
-                            self.err_write(stack)
-                            raise LaTeXFormatError(
-                                "open element on stack: " + `n`)
-                    self.write(")document\n")
-                elif stack and envname == stack[-1]:
-                    self.write(")%s\n" % envname)
-                    del stack[-1]
-                    popping(envname, "a", len(stack) + depth)
-                else:
-                    raise LaTeXStackError(envname, stack)
-                line = line[m.end():]
-                continue
-            m = _begin_macro_rx.match(line)
-            if m:
-                # start of macro
-                macroname = m.group(1)
-                if macroname == "verbatim":
-                    # really magic case!
-                    pos = string.find(line, "\\end{verbatim}")
-                    text = line[m.end(1):pos]
-                    self.write("(verbatim\n")
-                    self.write("-%s\n" % encode(text))
-                    self.write(")verbatim\n")
-                    line = line[pos + len("\\end{verbatim}"):]
-                    continue
-                numbered = 1
-                opened = 0
-                if macroname[-1] == "*":
-                    macroname = macroname[:-1]
-                    numbered = 0
-                if macroname in self.autoclosing and macroname in stack:
-                    while stack[-1] != macroname:
-                        top = stack.pop()
-                        if top and top not in self.discards:
-                            self.write(")%s\n-\\n\n" % top)
-                        popping(top, "b", len(stack) + depth)
-                    if macroname not in self.discards:
-                        self.write("-\\n\n)%s\n-\\n\n" % macroname)
-                    popping(macroname, "c", len(stack) + depth - 1)
-                    del stack[-1]
-                #
-                if macroname in self.discards:
-                    self.push_output(StringIO.StringIO())
-                else:
-                    self.push_output(self.ofp)
-                #
-                params, optional, empty, environ = self.start_macro(macroname)
-                if not numbered:
-                    self.write("Anumbered TOKEN no\n")
-                # rip off the macroname
-                if params:
-                    line = line[m.end(1):]
-                elif empty:
-                    line = line[m.end(1):]
-                else:
-                    line = line[m.end():]
-                #
-                # Very ugly special case to deal with \item[].  The catch
-                # is that this needs to occur outside the for loop that
-                # handles attribute parsing so we can 'continue' the outer
-                # loop.
-                #
-                if optional and type(params[0]) is TupleType:
-                    # the attribute name isn't used in this special case
-                    stack.append(macroname)
-                    self.write("(%s\n" % macroname)
-                    m = _start_optional_rx.match(line)
-                    if m:
-                        self.line = line[m.end():]
-                        line = self.subconvert("]", depth + len(stack))
-                    line = "}" + line
-                    continue
-                # handle attribute mappings here:
-                for attrname in params:
-                    if optional:
-                        optional = 0
-                        if type(attrname) is StringType:
-                            m = _optional_rx.match(line)
-                            if m:
-                                line = line[m.end():]
-                                self.write("A%s TOKEN %s\n"
-                                           % (attrname, encode(m.group(1))))
-                    elif type(attrname) is TupleType:
-                        # This is a sub-element; but place the and attribute
-                        # we found on the stack (\section-like); the
-                        # content of the macro will become the content 
-                        # of the attribute element, and the macro will 
-                        # have to be closed some other way (such as
-                        # auto-closing).
-                        stack.append(macroname)
-                        self.write("(%s\n" % macroname)
-                        macroname = attrname[0]
-                        m = _start_group_rx.match(line)
-                        if m:
-                            line = line[m.end():]
-                    elif type(attrname) is ListType:
-                        # A normal subelement: <macroname><attrname>...</>...
-                        attrname = attrname[0]
-                        if not opened:
-                            opened = 1
-                            self.write("(%s\n" % macroname)
-                            pushing(macroname, "c", len(stack) + depth)
-                        self.write("(%s\n" % attrname)
-                        pushing(attrname, "sub-elem", len(stack) + depth + 1)
-                        self.line = skip_white(line)[1:]
-                        line = self.subconvert("}", len(stack) + depth + 1)[1:]
-                        popping(attrname, "sub-elem", len(stack) + depth + 1)
-                        self.write(")%s\n" % attrname)
-                    else:
-                        m = _parameter_rx.match(line)
-                        if not m:
-                            raise LaTeXFormatError(
-                                "could not extract parameter %s for %s: %s"
-                                % (attrname, macroname, `line[:100]`))
-                        value = m.group(1)
-                        if _token_rx.match(value):
-                            dtype = "TOKEN"
-                        else:
-                            dtype = "CDATA"
-                        self.write("A%s %s %s\n"
-                                   % (attrname, dtype, encode(value)))
-                        line = line[m.end():]
-                if params and type(params[-1]) is StringType \
-                   and (not empty) and not environ:
-                    # attempt to strip off next '{'
-                    m = _start_group_rx.match(line)
-                    if not m:
-                        raise LaTeXFormatError(
-                            "non-empty element '%s' has no content: %s"
-                            % (macroname, line[:12]))
-                    line = line[m.end():]
-                if not opened:
-                    self.write("(%s\n" % macroname)
-                    pushing(macroname, "d", len(stack) + depth)
-                if empty:
-                    line = "}" + line
-                stack.append(macroname)
-                self.pop_output()
-                continue
-            if line[0] == endchar and not stack:
-                self.line = line[1:]
-                return self.line
-            if line[0] == "}":
-                # end of macro or group
-                macroname = stack[-1]
-                conversion = self.table.get(macroname)
-                if macroname \
-                   and macroname not in self.discards \
-                   and type(conversion) is not StringType:
-                    # otherwise, it was just a bare group
-                    self.write(")%s\n" % stack[-1])
-                popping(macroname, "d", len(stack) + depth - 1)
-                del stack[-1]
-                line = line[1:]
-                continue
-            if line[0] == "{":
-                pushing("", "e", len(stack) + depth)
-                stack.append("")
-                line = line[1:]
-                continue
-            if line[0] == "\\" and line[1] in ESCAPED_CHARS:
-                self.write("-%s\n" % encode(line[1]))
-                line = line[2:]
-                continue
-            if line[:2] == r"\\":
-                self.write("(BREAK\n)BREAK\n")
-                line = line[2:]
-                continue
-            m = _text_rx.match(line)
-            if m:
-                text = encode(m.group())
-                self.write("-%s\n" % text)
-                line = line[m.end():]
-                continue
-            # special case because of \item[]
-            if line[0] == "]":
-                self.write("-]\n")
-                line = line[1:]
-                continue
-            # avoid infinite loops
-            extra = ""
-            if len(line) > 100:
-                extra = "..."
-            raise LaTeXFormatError("could not identify markup: %s%s"
-                                   % (`line[:100]`, extra))
-        while stack and stack[-1] in self.autoclosing:
-            self.write("-\\n\n")
-            self.write(")%s\n" % stack[-1])
-            popping(stack.pop(), "e", len(stack) + depth - 1)
-        if stack:
-            raise LaTeXFormatError("elements remain on stack: "
-                                   + string.join(stack, ", "))
-        # otherwise we just ran out of input here...
-
-    def start_macro(self, name):
-        conversion = self.table.get(name, ([], 0, 0, 0, 0))
-        params, optional, empty, environ, nocontent = conversion
-        if empty:
-            self.write("e\n")
-        elif nocontent:
-            empty = 1
-        return params, optional, empty, environ
-
-
-class NewConversion(BaseConversion):
     def __init__(self, ifp, ofp, table={}):
         BaseConversion.__init__(self, ifp, ofp, table)
         self.discards = []
@@ -635,17 +402,8 @@
         self.write("A%s %s %s\n" % (pentry.name, dtype, encode(value)))
 
 
-def old_convert(ifp, ofp, table={}, discards=(), autoclosing=()):
-    c = Conversion(ifp, ofp, table, discards, autoclosing)
-    try:
-        c.convert()
-    except IOError, (err, msg):
-        if err != errno.EPIPE:
-            raise
-
-
-def new_convert(ifp, ofp, table={}, discards=(), autoclosing=()):
-    c = NewConversion(ifp, ofp, table)
+def convert(ifp, ofp, table):
+    c = Conversion(ifp, ofp, table)
     try:
         c.convert()
     except IOError, (err, msg):
@@ -768,17 +526,9 @@
 def main():
     global DEBUG
     #
-    convert = new_convert
-    newstyle = 1
-    opts, args = getopt.getopt(sys.argv[1:], "Dn", ["debug", "new"])
+    opts, args = getopt.getopt(sys.argv[1:], "D", ["debug"])
     for opt, arg in opts:
-        if opt in ("-n", "--new"):
-            convert = new_convert
-            newstyle = 1
-        elif opt in ("-o", "--old"):
-            convert = old_convert
-            newstyle = 0
-        elif opt in ("-D", "--debug"):
+        if opt in ("-D", "--debug"):
             DEBUG = DEBUG + 1
     if len(args) == 0:
         ifp = sys.stdin
@@ -792,119 +542,9 @@
     else:
         usage()
         sys.exit(2)
-    table = {
-        # entries have the form:
-        # name: ([attribute names], is1stOptional, isEmpty, isEnv, nocontent)
-        # attribute names can be:
-        #   "string" -- normal attribute
-        #   ("string",) -- sub-element with content of macro; like for \section
-        #   ["string"] -- sub-element
-        "bifuncindex": (["name"], 0, 1, 0, 0),
-        "cfuncdesc": (["type", "name", ("args",)], 0, 0, 1, 0),
-        "chapter": ([("title",)], 0, 0, 0, 0),
-        "chapter*": ([("title",)], 0, 0, 0, 0),
-        "classdesc": (["name", ("args",)], 0, 0, 1, 0),
-        "ctypedesc": (["name"], 0, 0, 1, 0),
-        "cvardesc":  (["type", "name"], 0, 0, 1, 0),
-        "datadesc":  (["name"], 0, 0, 1, 0),
-        "declaremodule": (["id", "type", "name"], 1, 1, 0, 0),
-        "deprecated": (["release"], 0, 0, 0, 0),
-        "documentclass": (["classname"], 0, 1, 0, 0),
-        "excdesc": (["name"], 0, 0, 1, 0),
-        "funcdesc": (["name", ("args",)], 0, 0, 1, 0),
-        "funcdescni": (["name", ("args",)], 0, 0, 1, 0),
-        "funcline": (["name"], 0, 0, 0, 0),
-        "funclineni": (["name"], 0, 0, 0, 0),
-        "geq": ([], 0, 1, 0, 0),
-        "hline": ([], 0, 1, 0, 0),
-        "include": (["source"], 0, 1, 0, 0),
-        "indexii": (["ie1", "ie2"], 0, 1, 0, 0),
-        "indexiii": (["ie1", "ie2", "ie3"], 0, 1, 0, 0),
-        "indexiv": (["ie1", "ie2", "ie3", "ie4"], 0, 1, 0, 0),
-        "indexname": ([], 0, 0, 0, 0),
-        "input": (["source"], 0, 1, 0, 0),
-        "item": ([("leader",)], 1, 0, 0, 0),
-        "label": (["id"], 0, 1, 0, 0),
-        "labelwidth": ([], 0, 1, 0, 0),
-        "large": ([], 0, 1, 0, 0),
-        "LaTeX": ([], 0, 1, 0, 0),
-        "leftmargin": ([], 0, 1, 0, 0),
-        "leq": ([], 0, 1, 0, 0),
-        "lineii": ([["entry"], ["entry"]], 0, 0, 0, 1),
-        "lineiii": ([["entry"], ["entry"], ["entry"]], 0, 0, 0, 1),
-        "lineiv": ([["entry"], ["entry"], ["entry"], ["entry"]], 0, 0, 0, 1),
-        "localmoduletable": ([], 0, 1, 0, 0),
-        "makeindex": ([], 0, 1, 0, 0), 
-        "makemodindex": ([], 0, 1, 0, 0), 
-        "maketitle": ([], 0, 1, 0, 0),
-        "manpage": (["name", "section"], 0, 1, 0, 0),
-        "memberdesc": (["class", "name"], 1, 0, 1, 0),
-        "memberdescni": (["class", "name"], 1, 0, 1, 0),
-        "methoddesc": (["class", "name", ("args",)], 1, 0, 1, 0),
-        "methoddescni": (["class", "name", ("args",)], 1, 0, 1, 0),
-        "methodline": (["class", "name"], 1, 0, 0, 0),
-        "methodlineni": (["class", "name"], 1, 0, 0, 0),
-        "moduleauthor": (["name", "email"], 0, 1, 0, 0),
-        "opcodedesc": (["name", "var"], 0, 0, 1, 0),
-        "par": ([], 0, 1, 0, 0),
-        "paragraph": ([("title",)], 0, 0, 0, 0),
-        "refbimodindex": (["name"], 0, 1, 0, 0),
-        "refexmodindex": (["name"], 0, 1, 0, 0),
-        "refmodindex": (["name"], 0, 1, 0, 0),
-        "refstmodindex": (["name"], 0, 1, 0, 0),
-        "refmodule": (["ref"], 1, 0, 0, 0),
-        "renewcommand": (["macro"], 0, 0, 0, 0),
-        "rfc": (["num"], 0, 1, 0, 0),
-        "section": ([("title",)], 0, 0, 0, 0),
-        "sectionauthor": (["name", "email"], 0, 1, 0, 0),
-        "seemodule": (["ref", "name"], 1, 0, 0, 0),
-        "stindex": (["type"], 0, 1, 0, 0),
-        "subparagraph": ([("title",)], 0, 0, 0, 0),
-        "subsection": ([("title",)], 0, 0, 0, 0),
-        "subsubsection": ([("title",)], 0, 0, 0, 0),
-        "list": (["bullet", "init"], 0, 0, 1, 0),
-        "tableii": (["colspec", "style",
-                     ["entry"], ["entry"]], 0, 0, 1, 0),
-        "tableiii": (["colspec", "style",
-                      ["entry"], ["entry"], ["entry"]], 0, 0, 1, 0),
-        "tableiv": (["colspec", "style",
-                     ["entry"], ["entry"], ["entry"], ["entry"]], 0, 0, 1, 0),
-        "version": ([], 0, 1, 0, 0),
-        "versionadded": (["version"], 0, 1, 0, 0),
-        "versionchanged": (["version"], 0, 1, 0, 0),
-        "withsubitem": (["text"], 0, 0, 0, 0),
-        #
-        "ABC": ([], 0, 1, 0, 0),
-        "ASCII": ([], 0, 1, 0, 0),
-        "C": ([], 0, 1, 0, 0),
-        "Cpp": ([], 0, 1, 0, 0),
-        "EOF": ([], 0, 1, 0, 0),
-        "e": ([], 0, 1, 0, 0),
-        "ldots": ([], 0, 1, 0, 0),
-        "NULL": ([], 0, 1, 0, 0),
-        "POSIX": ([], 0, 1, 0, 0),
-        "UNIX": ([], 0, 1, 0, 0),
-        #
-        # Things that will actually be going away!
-        #
-        "appendix": ([], 0, 1, 0, 0),
-        "catcode": ([], 0, 1, 0, 0),
-        "fi": ([], 0, 1, 0, 0),
-        "ifhtml": ([], 0, 1, 0, 0),
-        "makeindex": ([], 0, 1, 0, 0),
-        "makemodindex": ([], 0, 1, 0, 0),
-        "maketitle": ([], 0, 1, 0, 0),
-        "noindent": ([], 0, 1, 0, 0),
-        "protect": ([], 0, 1, 0, 0),
-        "tableofcontents": ([], 0, 1, 0, 0),
-        }
-    if newstyle:
-        table = load_table(open(os.path.join(sys.path[0], 'conversion.xml')))
-    convert(ifp, ofp, table,
-            discards=["fi", "ifhtml", "makeindex", "makemodindex", "maketitle",
-                      "noindent", "tableofcontents"],
-            autoclosing=["chapter", "section", "subsection", "subsubsection",
-                         "paragraph", "subparagraph", ])
+
+    table = load_table(open(os.path.join(sys.path[0], 'conversion.xml')))
+    convert(ifp, ofp, table)
 
 
 if __name__ == "__main__":