Adjust to understand use of either single- or double-quotes to quote
attribute values, and make the logic surrounding the platform
annotations just a little easier to read.  Also make the platform
notes appear in the generated page; they were supposed to, but did not.
diff --git a/Doc/tools/mkmodindex b/Doc/tools/mkmodindex
index 5f2da0e..23a200e 100755
--- a/Doc/tools/mkmodindex
+++ b/Doc/tools/mkmodindex
@@ -49,26 +49,30 @@
 
 
 class Node(buildindex.Node):
-    annotation = ""
-
-    def __init__(self, link, str, seqno):
-        parts = string.split(str, None, 1)
-        if parts[0][-5:] == "</tt>":
-            self.modname = parts[0][:-5]
-        else:
-            self.modname = parts[0]
-        if len(parts) == 2:
-            self.annotation = parts[1]
+    def __init__(self, link, str, seqno, platinfo):
+        self.annotation = platinfo or None
+        if str[0][-5:] == "</tt>":
+            str = str[:-5]
+        self.modname = str
         buildindex.Node.__init__(self, link, self.modname, seqno)
+        if platinfo:
+            s = '<tt class="module">%s</tt> %s' \
+                % (self.modname, self.annotation)
+        else:
+            s = '<tt class="module">%s</tt>' % str
+        self.text = [s]
 
     def __str__(self):
-        return '<tt class="module">%s</tt> %s' \
-               % (self.modname, self.annotation)
+        if self.annotation:
+            return '<tt class="module">%s</tt> %s' \
+                   % (self.modname, self.annotation)
+        else:
+            return '<tt class="module">%s</tt>' % self.modname
 
 _rx = re.compile(
-    "<dt><a href='(module-.*\.html)#l2h-\d+'><tt class='module'>"
-    "([a-zA-Z_][a-zA-Z0-9_.]*</tt>(\s*<em>"
-    "\(<span class='platform'>.*</span>\)</em>)?)</a>")
+    "<dt><a href=['\"](module-.*\.html)(?:#l2h-\d+)?['\"]>"
+    "<tt class=['\"]module['\"]>([a-zA-Z_][a-zA-Z0-9_.]*)</tt>\s*(<em>"
+    "\(<span class=['\"]platform['\"]>.*</span>\)</em>)?</a>")
 
 def main():
     options = IndexOptions()
@@ -81,7 +85,6 @@
     # Collect the input data:
     #
     nodes = []
-    seqno = 0
     has_plat_flag = 0
     for ifn in args:
         if ifn == "-":
@@ -97,11 +100,11 @@
             m = _rx.match(line)
             if m:
                 # This line specifies a module!
-                basename, modname = m.group(1, 2)
-                has_plat_flag = has_plat_flag or m.group(3)
+                basename, modname, platinfo = m.group(1, 2, 3)
+                has_plat_flag = has_plat_flag or platinfo
                 linkfile = os.path.join(dirname, basename)
-                nodes.append(Node('<a href="%s">' % linkfile, modname, seqno))
-                seqno = seqno + 1
+                nodes.append(Node('<a href="%s">' % linkfile, modname,
+                                  len(nodes), platinfo))
         ifp.close()
     #
     # Generate all output: