def gen_range_tables(out, name, s_suffix, l_suffix, ranges): numshort = 0 numlong = 0 sptr = "NULL" lptr = "NULL" for range in ranges: (low, high) = range if high < 0x10000: if numshort == 0: sptr = name + s_suffix pline = "static const xmlChSRange %s[] = {" % sptr else: pline += "," numshort += 1 else: if numlong == 0: if numshort > 0: out.write(pline + "};\n") lptr = name + l_suffix pline = "static const xmlChLRange %s[] = {" % lptr else: pline += "," numlong += 1 if len(pline) > 60: out.write(pline + "\n") pline = " " elif pline[-1:] == ",": pline += " " pline += "{%s, %s}" % (hex(low), hex(high)) out.write(pline + "};\n") return "{%s,%s,%s,%s}" % (numshort, numlong, sptr, lptr)