Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #!/usr/bin/python
  2.  
  3. import sys
  4.  
  5. agl = []
  6. agltab = []
  7. aglmap = {}
  8.  
  9. print "/*"
  10.  
  11. f = open("glyphlist.txt", "r")
  12. for line in f.readlines():
  13.         if line[0] == '#':
  14.                 print line.strip()
  15.                 continue
  16.         line = line[:-1]
  17.         name, list = line.split(';')
  18.         list = map(lambda x: int(x, 16), list.split(' '))
  19.         agl.append((name, list))
  20.  
  21. for name, ucslist in agl:
  22.         num = len(ucslist)
  23.         ucs = ucslist[0]
  24.         agltab.append((name, ucs))
  25.         if ucs not in aglmap:
  26.                 aglmap[ucs] = []
  27.         aglmap[ucs].append(name)
  28.  
  29. print "*/"
  30. print
  31.  
  32. def dumplist(list):
  33.         n = 0;
  34.         for item in list:
  35.                 n += len(item) + 1
  36.                 if n > 78:
  37.                         sys.stdout.write("\n")
  38.                         n = len(item) + 1
  39.                 sys.stdout.write(item)
  40.                 sys.stdout.write(",")
  41.         sys.stdout.write("\n")
  42.  
  43. agltab.sort()
  44. namelist = []
  45. codelist = []
  46. for name, ucs in agltab:
  47.         namelist.append("\"%s\"" % name)
  48.         codelist.append("%d" % ucs)
  49.  
  50. keys = aglmap.keys()
  51. keys.sort()
  52. dupoffsets = []
  53. dupnames = []
  54. for ucs in keys:
  55.         list = aglmap[ucs]
  56.         ofs = len(dupnames)
  57.         if len(list) > 1:
  58.                 dupoffsets.append("%d,%d" % (ucs, ofs))
  59.                 for name in list:
  60.                         dupnames.append("\"%s\"" % name)
  61.                 dupnames.append("0")
  62.  
  63. print "static const char *agl_name_list[] = {"
  64. dumplist(namelist)
  65. print "};"
  66. print
  67. print "static const unsigned short agl_code_list[] = {"
  68. dumplist(codelist)
  69. print "};"
  70. print
  71. print "static const unsigned short agl_dup_offsets[] = {"
  72. dumplist(dupoffsets)
  73. print "};"
  74. print
  75. print "static const char *agl_dup_names[] = {"
  76. dumplist(dupnames)
  77. print "};"
  78.