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: