Script to combine module index files.  Given a list of files that look
like modindex.html, create a combined modindex.html file that lists
all the modules.  Takes the same parameters as buildindex.py.
diff --git a/Doc/tools/mkmodindex b/Doc/tools/mkmodindex
new file mode 100755
index 0000000..893771e
--- /dev/null
+++ b/Doc/tools/mkmodindex
@@ -0,0 +1,136 @@
+#! /usr/bin/env python
+#  -*- Python -*-
+
+import buildindex
+import getopt
+import os
+import re
+import string
+import sys
+
+
+_rx = re.compile(
+    '<dt><a href="(module-.*\.html)">([a-zA-Z_][a-zA-Z0-9_.]*)</a>')
+
+def main():
+    outputfile = "-"
+    columns = 1
+    letters = 0
+    opts, args = getopt.getopt(sys.argv[1:], "c:lo:",
+                               ["columns=", "letters", "output="])
+    for opt, val in opts:
+        if opt in ("-o", "--output"):
+            outputfile = val
+        elif opt in ("-c", "--columns"):
+            columns = string.atoi(val)
+        elif opt in ("-l", "--letters"):
+            letters = 1
+    if not args:
+        args = ["-"]
+    #
+    # Collect the input data:
+    #
+    nodes = []
+    seqno = 0
+    for ifn in args:
+        if ifn == "-":
+            ifp = sys.stdin
+            dirname = ''
+        else:
+            ifp = open(ifn)
+            dirname = os.path.dirname(ifn)
+        while 1:
+            line = ifp.readline()
+            if not line:
+                break
+            m = _rx.match(line)
+            if m:
+                # This line specifies a module!
+                basename, modname = m.group(1, 2)
+                linkfile = os.path.join(dirname, basename)
+                nodes.append(buildindex.Node('<a href="%s">' % linkfile,
+                                             "<tt>%s</tt>" % modname,
+                                             seqno))
+                seqno = seqno + 1
+        ifp.close()
+    num_nodes = len(nodes)
+    html = HEAD + buildindex.process_nodes(nodes, columns, letters) + TAIL
+    program = os.path.basename(sys.argv[0])
+    if outputfile == "-":
+        sys.stdout.write(html)
+        sys.stderr.write("%s: %d index nodes\n" % (program, num_nodes))
+    else:
+        open(outputfile, "w").write(html)
+        print
+        print "%s: %d index nodes" % (program, num_nodes)
+
+
+HEAD = """\
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Global Module Index</title>
+<META NAME="description" CONTENT="Global Module Index">
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<LINK REL="STYLESHEET" HREF="lib/lib.css">
+<LINK REL="up" HREF="./">
+</head>
+<body bgcolor="#ffffff">
+<div class=navigation>
+<table width="100%" cellpadding=0 cellspacing=2>
+<tr>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td><a href="./"><img width=32 height=32 align=bottom border=0 alt="up"
+ src="icons/up.gif"></A></td>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td align=center bgcolor="#99CCFF" width="100%">
+ <b class=title>Global Module Index</b></td>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+</tr></table>
+<b class=navlabel>Up:</b> <span class=sectref><A
+ HREF="./">Python Documentation Index</A></span>
+<br><hr></div>
+"""
+
+TAIL = """
+<div class=navigation>
+<hr>
+<table width="100%" cellpadding=0 cellspacing=2>
+<tr>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td><a href="./"><img width=32 height=32 align=bottom border=0 alt="up"
+ src="icons/up.gif"></A></td>
+<td><img width=32 height=32 align=bottom border=0 alt=""
+ src="icons/blank.gif"></A></td>
+<td align=center bgcolor="#99CCFF" width="100%">
+ <b class=title>Global Module Index</b></td>
+<td><img width=32 height=32 align=bottom border=0 alt=""
+ src="icons/blank.gif"></td>
+<td><img width=32 height=32 align=bottom border=0 alt=""
+ src="icons/blank.gif"></td>
+<td><img width=32 height=32 align=bottom border=0 alt=""
+ src="icons/blank.gif"></td>
+</tr></table>
+<b class=navlabel>Up:</b> <span class=sectref><A
+ HREF="./">Python Documentation Index</A></span>
+</div>
+<!--End of Navigation Panel-->
+<ADDRESS>
+<hr>Send comments to
+<a href="mailto:python-docs@python.org">python-docs@python.org</a>.
+</ADDRESS>
+</BODY>
+</HTML>
+"""
+
+
+if __name__ == "__main__":
+    main()