<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#!/usr/bin/env python
"""
Usage: make_index.py &lt;html_ref_file&gt; [ &gt; &lt;output_func_index_file&gt; ]
This script parses html reference file, creates alphabetical list of
functions and list of examples ]
"""

import sys, re, string

f = open(sys.argv[1])
func_list = {}
struct_list = []
func_decl_re = re.compile( r'&lt;a name="decl_(.+?)"' )


for l in f.xreadlines():
    llist = func_decl_re.findall(l)
    if llist:
        ll = llist[0]
        if ll.startswith('Cv'):
            struct_list.append(ll)
        elif ll.startswith('Ipl'):
            struct_list.append(ll)
        elif ll.startswith('cvm'):
            sublist = func_list.get(ll[3], [])
            sublist.append(ll)
            func_list[ll[3]] = sublist
        elif ll.startswith('cv'):
            sublist = func_list.get(ll[2], [])
            sublist.append(ll)
            func_list[ll[2]] = sublist

f.close()

struct_list.sort()
func_letters = func_list.keys()
func_letters.sort()

print "&lt;html&gt;&lt;body&gt;"

columns = 3

for letter in func_letters:
    print '&lt;hr&gt;&lt;h3&gt;%s&lt;/h3&gt;\n&lt;table width="100%%"&gt;' % letter
    sublist = func_list[letter]
    sublist.sort()
    col_len = (len(sublist)+columns-1)/columns
    #if col_len*columns &gt; len(sublist):
    #    sublist.append( "" * (col_len*columns - len(sublist)) )
    for i in range(col_len):
        print '&lt;tr&gt;'
        for j in range(columns):
            if i + j*col_len &lt; len(sublist):
                fn = sublist[i+j*col_len]
                fn_short = fn.lstrip(string.lowercase)
                print '&lt;td width="25%%"&gt;&lt;a href="#decl_%s"&gt;%s&lt;/a&gt;&lt;/td&gt;' % (fn, fn_short)
            else:
                print '&lt;td width="25%%"&gt;&lt;/td&gt;'
        print '&lt;/tr&gt;'
    print "&lt;/table&gt;"



</pre></body></html>