summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xDoc/indfix.py34
-rwxr-xr-xDoc/tools/indfix.py34
2 files changed, 36 insertions, 32 deletions
diff --git a/Doc/indfix.py b/Doc/indfix.py
index 3435212..ede1d16 100755
--- a/Doc/indfix.py
+++ b/Doc/indfix.py
@@ -24,19 +24,20 @@ import StringIO
import sys
-def strcasecmp(e1, e2, lower=string.lower):
+def cmp_entries(e1, e2, lower=string.lower):
return cmp(lower(e1[1]), lower(e2[1])) or cmp(e1, e2)
-def dump_entries(ofp, entries):
+def dump_entries(write, entries):
if len(entries) == 1:
- ofp.write(" \\item %s (%s)%s\n" % entries[0])
+ write(" \\item %s (%s)%s\n" % entries[0])
return
- ofp.write(" \item %s\n" % entries[0][0])
+ write(" \item %s\n" % entries[0][0])
# now sort these in a case insensitive manner:
- entries.sort(strcasecmp)
+ if len(entries) > 0:
+ entries.sort(cmp_entries)
for xxx, subitem, pages in entries:
- ofp.write(" \subitem %s%s\n" % (subitem, pages))
+ write(" \subitem %s%s\n" % (subitem, pages))
breakable_re = re.compile(r" \\item (.*) [(](.*)[)]((?:, \d+)+)")
@@ -55,27 +56,28 @@ def main():
else:
fp = open(filename)
ofp = StringIO.StringIO()
- item, subitem = None, None
entries = []
+ match = breakable_re.match
+ write = ofp.write
while 1:
line = fp.readline()
if not line:
break
- m = breakable_re.match(line)
+ m = match(line)
if m:
entry = m.group(1, 2, 3)
- if entries:
- if entries[-1][0] != entry[0]:
- dump_entries(ofp, entries)
- entries = []
+ if entries and entries[-1][0] != entry[0]:
+ dump_entries(write, entries)
+ entries = []
entries.append(entry)
elif entries:
- dump_entries(ofp, entries)
+ dump_entries(write, entries)
entries = []
- ofp.write(line)
+ write(line)
else:
- pass
- ofp.write(line)
+ write(line)
+ del write
+ del match
fp.close()
if outfile == "-":
fp = sys.stdout
diff --git a/Doc/tools/indfix.py b/Doc/tools/indfix.py
index 3435212..ede1d16 100755
--- a/Doc/tools/indfix.py
+++ b/Doc/tools/indfix.py
@@ -24,19 +24,20 @@ import StringIO
import sys
-def strcasecmp(e1, e2, lower=string.lower):
+def cmp_entries(e1, e2, lower=string.lower):
return cmp(lower(e1[1]), lower(e2[1])) or cmp(e1, e2)
-def dump_entries(ofp, entries):
+def dump_entries(write, entries):
if len(entries) == 1:
- ofp.write(" \\item %s (%s)%s\n" % entries[0])
+ write(" \\item %s (%s)%s\n" % entries[0])
return
- ofp.write(" \item %s\n" % entries[0][0])
+ write(" \item %s\n" % entries[0][0])
# now sort these in a case insensitive manner:
- entries.sort(strcasecmp)
+ if len(entries) > 0:
+ entries.sort(cmp_entries)
for xxx, subitem, pages in entries:
- ofp.write(" \subitem %s%s\n" % (subitem, pages))
+ write(" \subitem %s%s\n" % (subitem, pages))
breakable_re = re.compile(r" \\item (.*) [(](.*)[)]((?:, \d+)+)")
@@ -55,27 +56,28 @@ def main():
else:
fp = open(filename)
ofp = StringIO.StringIO()
- item, subitem = None, None
entries = []
+ match = breakable_re.match
+ write = ofp.write
while 1:
line = fp.readline()
if not line:
break
- m = breakable_re.match(line)
+ m = match(line)
if m:
entry = m.group(1, 2, 3)
- if entries:
- if entries[-1][0] != entry[0]:
- dump_entries(ofp, entries)
- entries = []
+ if entries and entries[-1][0] != entry[0]:
+ dump_entries(write, entries)
+ entries = []
entries.append(entry)
elif entries:
- dump_entries(ofp, entries)
+ dump_entries(write, entries)
entries = []
- ofp.write(line)
+ write(line)
else:
- pass
- ofp.write(line)
+ write(line)
+ del write
+ del match
fp.close()
if outfile == "-":
fp = sys.stdout