Deal with macros that have to be replaced with simple text; only a
couple of these are currently found in index data, but these should
all be handled in the same way.
Closes SF bug #952737.
diff --git a/Doc/tools/buildindex.py b/Doc/tools/buildindex.py
index a07ed2f..5870462 100755
--- a/Doc/tools/buildindex.py
+++ b/Doc/tools/buildindex.py
@@ -13,17 +13,27 @@
bang_join = "!".join
null_join = "".join
+REPLACEMENTS = [
+ # Hackish way to deal with macros replaced with simple text
+ (re.compile(r"\\ABC\b"), "ABC"),
+ (re.compile(r"\\ASCII\b"), "ASCII"),
+ (re.compile(r"\\Cpp\b"), "C++"),
+ (re.compile(r"\\EOF\b"), "EOF"),
+ (re.compile(r"\\NULL\b"), "NULL"),
+ (re.compile(r"\\POSIX\b"), "POSIX"),
+ (re.compile(r"\\UNIX\b"), "Unix"),
+ # deal with turds left over from LaTeX2HTML
+ (re.compile(r"<#\d+#>"), ""),
+ ]
class Node:
- __rmjunk = re.compile("<#\d+#>")
-
continuation = 0
def __init__(self, link, str, seqno):
self.links = [link]
self.seqno = seqno
- # remove <#\d+#> left in by moving the data out of LaTeX2HTML
- str = self.__rmjunk.sub('', str)
+ for pattern, replacement in REPLACEMENTS:
+ str = pattern.sub(replacement, str)
# build up the text
self.text = split_entry_text(str)
self.key = split_entry_key(str)