Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3205 lines
109 KiB

  1. /*++
  2. Copyright (c) 1996 Adobe Systems Incorporated
  3. Copyright (c) 1996 Microsoft Corporation
  4. Module Name:
  5. UniPsTbl
  6. Abstract:
  7. This module contains global data used to create NTM data from AFM files.
  8. Author:
  9. Rob Kiesler (rkiesler@adobe.com) 10/24/1996
  10. Environment:
  11. Revision History:
  12. 09/10/1997 ksuzuki
  13. Added WeightKeysCJK table.
  14. 10/28/1996 rkiesler@adobe.com
  15. Created.
  16. --*/
  17. #include "lib.h"
  18. #include "ppd.h"
  19. #include "pslib.h"
  20. #include "psglyph.h"
  21. #include "afm2ntm.h"
  22. //
  23. // Name of family .DAT file.
  24. //
  25. PWCHAR DatFileName = L"\\psfamily.dat";
  26. //
  27. // Unicode -> PS Char name xlat table, sorted by PS char name.
  28. //
  29. UPSCODEPT PstoUnicode[NUM_PS_CHARS] =
  30. {
  31. //
  32. // U+001f => '.notdef1f': this mapping guarantees that the very first
  33. // bit of the character defintion bitmap (pointed to by NTM.dwCharDefFlagOffset)
  34. // is clear to make the device glyph index zero a '.notdef' glyph.
  35. //
  36. { 0x001F, ".notdef1f", CS_ALL },
  37. { 0x0041, "A", CS_ALL },
  38. { 0x00C6, "AE", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  39. { 0x00C1, "Aacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  40. { 0x0102, "Abreve", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  41. { 0x00C2, "Acircumflex", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  42. { 0x00C4, "Adieresis", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  43. { 0x00C0, "Agrave", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  44. { 0x0391, "Alpha", CSUP(CS_GREEK) },
  45. { 0x0386, "Alphatonos", CSUP(CS_GREEK) },
  46. { 0x0100, "Amacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  47. { 0x0104, "Aogonek", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  48. { 0x00C5, "Aring", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  49. { 0x00C3, "Atilde", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  50. { 0x0042, "B", CS_ALL },
  51. { 0x0392, "Beta", CSUP(CS_GREEK) },
  52. { 0x0043, "C", CS_ALL },
  53. { 0x0106, "Cacute", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  54. { 0x010C, "Ccaron", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  55. { 0x00C7, "Ccedilla", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  56. { 0x03A7, "Chi", CSUP(CS_GREEK) },
  57. { 0x0044, "D", CS_ALL },
  58. { 0x010E, "Dcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  59. { 0x0110, "Dcroat", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  60. { 0x0394, "Delta", CSUP(CS_GREEK) | CSUP(CS_314) },
  61. { 0x0045, "E", CS_ALL },
  62. { 0x00C9, "Eacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  63. { 0x011A, "Ecaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  64. { 0x00CA, "Ecircumflex", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  65. { 0x00CB, "Edieresis", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  66. { 0x0116, "Edotaccent", CSUP(CS_314) },
  67. { 0x0116, "Edot", CSUP(CS_BALTIC) },
  68. { 0x00C8, "Egrave", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  69. { 0x0112, "Emacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  70. { 0x0118, "Eogonek", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  71. { 0x0395, "Epsilon", CSUP(CS_GREEK) },
  72. { 0x0388, "Epsilontonos", CSUP(CS_GREEK) },
  73. { 0x0397, "Eta", CSUP(CS_GREEK) },
  74. { 0x0389, "Etatonos", CSUP(CS_GREEK) },
  75. { 0x00D0, "Eth", CSUP(CS_ANSI) | CSUP(CS_228) },
  76. { 0x20AC, "Euro", CS_EURO },
  77. { 0x0046, "F", CS_ALL },
  78. { 0x0047, "G", CS_ALL },
  79. { 0x0393, "Gamma", CSUP(CS_GREEK) },
  80. { 0x011E, "Gbreve", CSUP(CS_TURKISH) | CSUP(CS_314) },
  81. { 0x0122, "Gcedilla", CSUP(CS_BALTIC) }, // TODO
  82. { 0x0122, "Gcommaaccent", CSUP(CS_314) },
  83. { 0x0048, "H", CS_ALL },
  84. { 0x0049, "I", CS_ALL },
  85. { 0x00CD, "Iacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  86. { 0x00CE, "Icircumflex", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  87. { 0x00CF, "Idieresis", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  88. { 0x0130, "Idotaccent", CSUP(CS_TURKISH) | CSUP(CS_314) },
  89. { 0x00CC, "Igrave", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  90. { 0x012A, "Imacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  91. { 0x012E, "Iogonek", CSUP(CS_BALTIC) | CSUP(CS_314) },
  92. { 0x0399, "Iota", CSUP(CS_GREEK) },
  93. { 0x03AA, "Iotadieresis", CSUP(CS_GREEK) },
  94. { 0x038A, "Iotatonos", CSUP(CS_GREEK) },
  95. { 0x004A, "J", CS_ALL },
  96. { 0x004B, "K", CS_ALL },
  97. { 0x039A, "Kappa", CSUP(CS_GREEK) },
  98. { 0x0136, "Kcedilla", CSUP(CS_BALTIC) }, // TODO
  99. { 0x0136, "Kcommaaccent", CSUP(CS_314) },
  100. { 0x004C, "L", CS_ALL },
  101. { 0x0139, "Lacute", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  102. { 0x039B, "Lambda", CSUP(CS_GREEK) },
  103. { 0x013D, "Lcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  104. { 0x013B, "Lcedilla", CSUP(CS_BALTIC) }, // TODO
  105. { 0x013B, "Lcommaaccent", CSUP(CS_314) },
  106. { 0x0141, "Lslash", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  107. { 0x004D, "M", CS_ALL },
  108. { 0x039C, "Mu", CSUP(CS_GREEK) },
  109. { 0x004E, "N", CS_ALL },
  110. { 0x0143, "Nacute", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  111. { 0x0147, "Ncaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  112. { 0x0145, "Ncedilla", CSUP(CS_BALTIC) }, // TODO
  113. { 0x0145, "Ncommaaccent", CSUP(CS_314) },
  114. { 0x00D1, "Ntilde", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  115. { 0x039D, "Nu", CSUP(CS_GREEK) },
  116. { 0x004F, "O", CS_ALL },
  117. { 0x0152, "OE", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  118. { 0x00D3, "Oacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  119. { 0x00D4, "Ocircumflex", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  120. { 0x00D6, "Odieresis", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  121. { 0x00D2, "Ograve", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  122. { 0x0150, "Ohungarumlaut", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  123. { 0x014C, "Omacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  124. { 0x03A9, "Omega", CSUP(CS_GREEK) },
  125. { 0x038F, "Omegatonos", CSUP(CS_GREEK) },
  126. { 0x039F, "Omicron", CSUP(CS_GREEK) },
  127. { 0x038C, "Omicrontonos", CSUP(CS_GREEK) },
  128. { 0x00D8, "Oslash", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  129. { 0x00D5, "Otilde", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  130. { 0x0050, "P", CS_ALL },
  131. { 0x03A6, "Phi", CSUP(CS_GREEK) },
  132. { 0x03A0, "Pi", CSUP(CS_GREEK) },
  133. { 0x03A8, "Psi", CSUP(CS_GREEK) },
  134. { 0x0051, "Q", CS_ALL },
  135. { 0x0052, "R", CS_ALL },
  136. { 0x0154, "Racute", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  137. { 0x0158, "Rcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  138. { 0x0156, "Rcedilla", CSUP(CS_BALTIC) }, // TODO
  139. { 0x0156, "Rcommaaccent", CSUP(CS_314) },
  140. { 0x03A1, "Rho", CSUP(CS_GREEK) },
  141. { 0x0053, "S", CS_ALL },
  142. { 0x015A, "Sacute", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  143. { 0x0160, "Scaron", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  144. { 0xF6C1, "Scedilla", CSUP(CS_314) },
  145. { 0x015E, "Scommaaccent", CSUP(CS_EASTEUROPE) | CSUP(CS_TURKISH) | CSUP(CS_314) },
  146. { 0x03A3, "Sigma", CSUP(CS_GREEK) },
  147. { 0x0054, "T", CS_ALL },
  148. { 0x03A4, "Tau", CSUP(CS_GREEK) },
  149. { 0x0164, "Tcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  150. { 0x0162, "Tcommaaccent", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  151. { 0x0398, "Theta", CSUP(CS_GREEK) },
  152. { 0x00DE, "Thorn", CSUP(CS_ANSI) | CSUP(CS_228) },
  153. { 0x0055, "U", CS_ALL },
  154. { 0x00DA, "Uacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  155. { 0x00DB, "Ucircumflex", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  156. { 0x00DC, "Udieresis", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  157. { 0x00D9, "Ugrave", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  158. { 0x0170, "Uhungarumlaut", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  159. { 0x016A, "Umacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  160. { 0x0172, "Uogonek", CSUP(CS_BALTIC) | CSUP(CS_314) },
  161. { 0x03A5, "Upsilon", CSUP(CS_GREEK) },
  162. { 0x03AB, "Upsilondieresis", CSUP(CS_GREEK) },
  163. { 0x038E, "Upsilontonos", CSUP(CS_GREEK) },
  164. { 0x016E, "Uring", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  165. { 0x0056, "V", CS_ALL },
  166. { 0x0057, "W", CS_ALL },
  167. { 0x0058, "X", CS_ALL },
  168. { 0x039E, "Xi", CSUP(CS_GREEK) },
  169. { 0x0059, "Y", CS_ALL },
  170. { 0x00DD, "Yacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_228) },
  171. { 0x0178, "Ydieresis", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  172. { 0x005A, "Z", CS_ALL },
  173. { 0x0179, "Zacute", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  174. { 0x017D, "Zcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_228) | CSUP(CS_ANSI)},
  175. { 0x017B, "Zdotaccent", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  176. { 0x0396, "Zeta", CSUP(CS_GREEK) },
  177. { 0x0061, "a", CS_ALL },
  178. { 0x00E1, "aacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  179. { 0x0103, "abreve", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  180. { 0x00E2, "acircumflex", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  181. { 0x00B4, "acute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  182. { 0x00E4, "adieresis", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  183. { 0x00E6, "ae", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  184. { 0x2015, "afii00208", CSUP(CS_GREEK) },
  185. { 0x0410, "afii10017", CSUP(CS_RUSSIAN) },
  186. { 0x0411, "afii10018", CSUP(CS_RUSSIAN) },
  187. { 0x0412, "afii10019", CSUP(CS_RUSSIAN) },
  188. { 0x0413, "afii10020", CSUP(CS_RUSSIAN) },
  189. { 0x0414, "afii10021", CSUP(CS_RUSSIAN) },
  190. { 0x0415, "afii10022", CSUP(CS_RUSSIAN) },
  191. { 0x0401, "afii10023", CSUP(CS_RUSSIAN) },
  192. { 0x0416, "afii10024", CSUP(CS_RUSSIAN) },
  193. { 0x0417, "afii10025", CSUP(CS_RUSSIAN) },
  194. { 0x0418, "afii10026", CSUP(CS_RUSSIAN) },
  195. { 0x0419, "afii10027", CSUP(CS_RUSSIAN) },
  196. { 0x041A, "afii10028", CSUP(CS_RUSSIAN) },
  197. { 0x041B, "afii10029", CSUP(CS_RUSSIAN) },
  198. { 0x041C, "afii10030", CSUP(CS_RUSSIAN) },
  199. { 0x041D, "afii10031", CSUP(CS_RUSSIAN) },
  200. { 0x041E, "afii10032", CSUP(CS_RUSSIAN) },
  201. { 0x041F, "afii10033", CSUP(CS_RUSSIAN) },
  202. { 0x0420, "afii10034", CSUP(CS_RUSSIAN) },
  203. { 0x0421, "afii10035", CSUP(CS_RUSSIAN) },
  204. { 0x0422, "afii10036", CSUP(CS_RUSSIAN) },
  205. { 0x0423, "afii10037", CSUP(CS_RUSSIAN) },
  206. { 0x0424, "afii10038", CSUP(CS_RUSSIAN) },
  207. { 0x0425, "afii10039", CSUP(CS_RUSSIAN) },
  208. { 0x0426, "afii10040", CSUP(CS_RUSSIAN) },
  209. { 0x0427, "afii10041", CSUP(CS_RUSSIAN) },
  210. { 0x0428, "afii10042", CSUP(CS_RUSSIAN) },
  211. { 0x0429, "afii10043", CSUP(CS_RUSSIAN) },
  212. { 0x042A, "afii10044", CSUP(CS_RUSSIAN) },
  213. { 0x042B, "afii10045", CSUP(CS_RUSSIAN) },
  214. { 0x042C, "afii10046", CSUP(CS_RUSSIAN) },
  215. { 0x042D, "afii10047", CSUP(CS_RUSSIAN) },
  216. { 0x042E, "afii10048", CSUP(CS_RUSSIAN) },
  217. { 0x042F, "afii10049", CSUP(CS_RUSSIAN) },
  218. { 0x0490, "afii10050", CSUP(CS_RUSSIAN) },
  219. { 0x0402, "afii10051", CSUP(CS_RUSSIAN) },
  220. { 0x0403, "afii10052", CSUP(CS_RUSSIAN) },
  221. { 0x0404, "afii10053", CSUP(CS_RUSSIAN) },
  222. { 0x0405, "afii10054", CSUP(CS_RUSSIAN) },
  223. { 0x0406, "afii10055", CSUP(CS_RUSSIAN) },
  224. { 0x0407, "afii10056", CSUP(CS_RUSSIAN) },
  225. { 0x0408, "afii10057", CSUP(CS_RUSSIAN) },
  226. { 0x0409, "afii10058", CSUP(CS_RUSSIAN) },
  227. { 0x040A, "afii10059", CSUP(CS_RUSSIAN) },
  228. { 0x040B, "afii10060", CSUP(CS_RUSSIAN) },
  229. { 0x040C, "afii10061", CSUP(CS_RUSSIAN) },
  230. { 0x040E, "afii10062", CSUP(CS_RUSSIAN) },
  231. { 0x0430, "afii10065", CSUP(CS_RUSSIAN) },
  232. { 0x0431, "afii10066", CSUP(CS_RUSSIAN) },
  233. { 0x0432, "afii10067", CSUP(CS_RUSSIAN) },
  234. { 0x0433, "afii10068", CSUP(CS_RUSSIAN) },
  235. { 0x0434, "afii10069", CSUP(CS_RUSSIAN) },
  236. { 0x0435, "afii10070", CSUP(CS_RUSSIAN) },
  237. { 0x0451, "afii10071", CSUP(CS_RUSSIAN) },
  238. { 0x0436, "afii10072", CSUP(CS_RUSSIAN) },
  239. { 0x0437, "afii10073", CSUP(CS_RUSSIAN) },
  240. { 0x0438, "afii10074", CSUP(CS_RUSSIAN) },
  241. { 0x0439, "afii10075", CSUP(CS_RUSSIAN) },
  242. { 0x043A, "afii10076", CSUP(CS_RUSSIAN) },
  243. { 0x043B, "afii10077", CSUP(CS_RUSSIAN) },
  244. { 0x043C, "afii10078", CSUP(CS_RUSSIAN) },
  245. { 0x043D, "afii10079", CSUP(CS_RUSSIAN) },
  246. { 0x043E, "afii10080", CSUP(CS_RUSSIAN) },
  247. { 0x043F, "afii10081", CSUP(CS_RUSSIAN) },
  248. { 0x0440, "afii10082", CSUP(CS_RUSSIAN) },
  249. { 0x0441, "afii10083", CSUP(CS_RUSSIAN) },
  250. { 0x0442, "afii10084", CSUP(CS_RUSSIAN) },
  251. { 0x0443, "afii10085", CSUP(CS_RUSSIAN) },
  252. { 0x0444, "afii10086", CSUP(CS_RUSSIAN) },
  253. { 0x0445, "afii10087", CSUP(CS_RUSSIAN) },
  254. { 0x0446, "afii10088", CSUP(CS_RUSSIAN) },
  255. { 0x0447, "afii10089", CSUP(CS_RUSSIAN) },
  256. { 0x0448, "afii10090", CSUP(CS_RUSSIAN) },
  257. { 0x0449, "afii10091", CSUP(CS_RUSSIAN) },
  258. { 0x044A, "afii10092", CSUP(CS_RUSSIAN) },
  259. { 0x044B, "afii10093", CSUP(CS_RUSSIAN) },
  260. { 0x044C, "afii10094", CSUP(CS_RUSSIAN) },
  261. { 0x044D, "afii10095", CSUP(CS_RUSSIAN) },
  262. { 0x044E, "afii10096", CSUP(CS_RUSSIAN) },
  263. { 0x044F, "afii10097", CSUP(CS_RUSSIAN) },
  264. { 0x0491, "afii10098", CSUP(CS_RUSSIAN) },
  265. { 0x0452, "afii10099", CSUP(CS_RUSSIAN) },
  266. { 0x0453, "afii10100", CSUP(CS_RUSSIAN) },
  267. { 0x0454, "afii10101", CSUP(CS_RUSSIAN) },
  268. { 0x0455, "afii10102", CSUP(CS_RUSSIAN) },
  269. { 0x0456, "afii10103", CSUP(CS_RUSSIAN) },
  270. { 0x0457, "afii10104", CSUP(CS_RUSSIAN) },
  271. { 0x0458, "afii10105", CSUP(CS_RUSSIAN) },
  272. { 0x0459, "afii10106", CSUP(CS_RUSSIAN) },
  273. { 0x045A, "afii10107", CSUP(CS_RUSSIAN) },
  274. { 0x045B, "afii10108", CSUP(CS_RUSSIAN) },
  275. { 0x045C, "afii10109", CSUP(CS_RUSSIAN) },
  276. { 0x045E, "afii10110", CSUP(CS_RUSSIAN) },
  277. { 0x040F, "afii10145", CSUP(CS_RUSSIAN) },
  278. { 0x045F, "afii10193", CSUP(CS_RUSSIAN) },
  279. { 0x060C, "afii57388", CSUP(CS_ARABIC) },
  280. { 0x061B, "afii57403", CSUP(CS_ARABIC) },
  281. { 0x061F, "afii57407", CSUP(CS_ARABIC) },
  282. { 0x0621, "afii57409", CSUP(CS_ARABIC) },
  283. { 0x0622, "afii57410", CSUP(CS_ARABIC) },
  284. { 0x0623, "afii57411", CSUP(CS_ARABIC) },
  285. { 0x0624, "afii57412", CSUP(CS_ARABIC) },
  286. { 0x0625, "afii57413", CSUP(CS_ARABIC) },
  287. { 0x0626, "afii57414", CSUP(CS_ARABIC) },
  288. { 0x0627, "afii57415", CSUP(CS_ARABIC) },
  289. { 0x0628, "afii57416", CSUP(CS_ARABIC) },
  290. { 0x0629, "afii57417", CSUP(CS_ARABIC) },
  291. { 0x062A, "afii57418", CSUP(CS_ARABIC) },
  292. { 0x062B, "afii57419", CSUP(CS_ARABIC) },
  293. { 0x062C, "afii57420", CSUP(CS_ARABIC) },
  294. { 0x062D, "afii57421", CSUP(CS_ARABIC) },
  295. { 0x062E, "afii57422", CSUP(CS_ARABIC) },
  296. { 0x062F, "afii57423", CSUP(CS_ARABIC) },
  297. { 0x0630, "afii57424", CSUP(CS_ARABIC) },
  298. { 0x0631, "afii57425", CSUP(CS_ARABIC) },
  299. { 0x0632, "afii57426", CSUP(CS_ARABIC) },
  300. { 0x0633, "afii57427", CSUP(CS_ARABIC) },
  301. { 0x0634, "afii57428", CSUP(CS_ARABIC) },
  302. { 0x0635, "afii57429", CSUP(CS_ARABIC) },
  303. { 0x0636, "afii57430", CSUP(CS_ARABIC) },
  304. { 0x0637, "afii57431", CSUP(CS_ARABIC) },
  305. { 0x0638, "afii57432", CSUP(CS_ARABIC) },
  306. { 0x0639, "afii57433", CSUP(CS_ARABIC) },
  307. { 0x063A, "afii57434", CSUP(CS_ARABIC) },
  308. { 0x0640, "afii57440", CSUP(CS_ARABIC) },
  309. { 0x0641, "afii57441", CSUP(CS_ARABIC) },
  310. { 0x0642, "afii57442", CSUP(CS_ARABIC) },
  311. { 0x0643, "afii57443", CSUP(CS_ARABIC) },
  312. { 0x0644, "afii57444", CSUP(CS_ARABIC) },
  313. { 0x0645, "afii57445", CSUP(CS_ARABIC) },
  314. { 0x0646, "afii57446", CSUP(CS_ARABIC) },
  315. { 0x0648, "afii57448", CSUP(CS_ARABIC) },
  316. { 0x0649, "afii57449", CSUP(CS_ARABIC) },
  317. { 0x064A, "afii57450", CSUP(CS_ARABIC) },
  318. { 0x064B, "afii57451", CSUP(CS_ARABIC) },
  319. { 0x064C, "afii57452", CSUP(CS_ARABIC) },
  320. { 0x064D, "afii57453", CSUP(CS_ARABIC) },
  321. { 0x064E, "afii57454", CSUP(CS_ARABIC) },
  322. { 0x064F, "afii57455", CSUP(CS_ARABIC) },
  323. { 0x0650, "afii57456", CSUP(CS_ARABIC) },
  324. { 0x0651, "afii57457", CSUP(CS_ARABIC) },
  325. { 0x0652, "afii57458", CSUP(CS_ARABIC) },
  326. { 0x0647, "afii57470", CSUP(CS_ARABIC) },
  327. { 0x067E, "afii57506", CSUP(CS_ARABIC) },
  328. { 0x0686, "afii57507", CSUP(CS_ARABIC) },
  329. { 0x0698, "afii57508", CSUP(CS_ARABIC) },
  330. { 0x06AF, "afii57509", CSUP(CS_ARABIC) },
  331. { 0x200E, "afii57596", CSUP(CS_HEBREW) | CSUP(CS_ARABIC) },
  332. { 0x200F, "afii57597", CSUP(CS_HEBREW) | CSUP(CS_ARABIC) },
  333. { 0x200D, "afii57598", CSUP(CS_ARABIC) },
  334. { 0x20AA, "afii57636", CSUP(CS_HEBREW) },
  335. { 0x05BE, "afii57645", CSUP(CS_HEBREW) },
  336. { 0x05C3, "afii57658", CSUP(CS_HEBREW) },
  337. { 0x05D0, "afii57664", CSUP(CS_HEBREW) },
  338. { 0x05D1, "afii57665", CSUP(CS_HEBREW) },
  339. { 0x05D2, "afii57666", CSUP(CS_HEBREW) },
  340. { 0x05D3, "afii57667", CSUP(CS_HEBREW) },
  341. { 0x05D4, "afii57668", CSUP(CS_HEBREW) },
  342. { 0x05D5, "afii57669", CSUP(CS_HEBREW) },
  343. { 0x05D6, "afii57670", CSUP(CS_HEBREW) },
  344. { 0x05D7, "afii57671", CSUP(CS_HEBREW) },
  345. { 0x05D8, "afii57672", CSUP(CS_HEBREW) },
  346. { 0x05D9, "afii57673", CSUP(CS_HEBREW) },
  347. { 0x05DA, "afii57674", CSUP(CS_HEBREW) },
  348. { 0x05DB, "afii57675", CSUP(CS_HEBREW) },
  349. { 0x05DC, "afii57676", CSUP(CS_HEBREW) },
  350. { 0x05DD, "afii57677", CSUP(CS_HEBREW) },
  351. { 0x05DE, "afii57678", CSUP(CS_HEBREW) },
  352. { 0x05DF, "afii57679", CSUP(CS_HEBREW) },
  353. { 0x05E0, "afii57680", CSUP(CS_HEBREW) },
  354. { 0x05E1, "afii57681", CSUP(CS_HEBREW) },
  355. { 0x05E2, "afii57682", CSUP(CS_HEBREW) },
  356. { 0x05E3, "afii57683", CSUP(CS_HEBREW) },
  357. { 0x05E4, "afii57684", CSUP(CS_HEBREW) },
  358. { 0x05E5, "afii57685", CSUP(CS_HEBREW) },
  359. { 0x05E6, "afii57686", CSUP(CS_HEBREW) },
  360. { 0x05E7, "afii57687", CSUP(CS_HEBREW) },
  361. { 0x05E8, "afii57688", CSUP(CS_HEBREW) },
  362. { 0x05E9, "afii57689", CSUP(CS_HEBREW) },
  363. { 0x05EA, "afii57690", CSUP(CS_HEBREW) },
  364. { 0x05F0, "afii57716", CSUP(CS_HEBREW) },
  365. { 0x05F1, "afii57717", CSUP(CS_HEBREW) },
  366. { 0x05F2, "afii57718", CSUP(CS_HEBREW) },
  367. { 0x05B4, "afii57793", CSUP(CS_HEBREW) },
  368. { 0x05B5, "afii57794", CSUP(CS_HEBREW) },
  369. { 0x05B6, "afii57795", CSUP(CS_HEBREW) },
  370. { 0x05BB, "afii57796", CSUP(CS_HEBREW) },
  371. { 0x05B8, "afii57797", CSUP(CS_HEBREW) },
  372. { 0x05B7, "afii57798", CSUP(CS_HEBREW) },
  373. { 0x05B0, "afii57799", CSUP(CS_HEBREW) },
  374. { 0x05B2, "afii57800", CSUP(CS_HEBREW) },
  375. { 0x05B1, "afii57801", CSUP(CS_HEBREW) },
  376. { 0x05B3, "afii57802", CSUP(CS_HEBREW) },
  377. { 0x05C2, "afii57803", CSUP(CS_HEBREW) },
  378. { 0x05C1, "afii57804", CSUP(CS_HEBREW) },
  379. { 0x05B9, "afii57806", CSUP(CS_HEBREW) },
  380. { 0x05BC, "afii57807", CSUP(CS_HEBREW) },
  381. { 0x05BD, "afii57839", CSUP(CS_HEBREW) },
  382. { 0x05BF, "afii57841", CSUP(CS_HEBREW) },
  383. { 0x05C0, "afii57842", CSUP(CS_HEBREW) },
  384. { 0x2116, "afii61352", CSUP(CS_RUSSIAN) },
  385. { 0x200C, "afii61664", CSUP(CS_ARABIC) },
  386. { 0x00E0, "agrave", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  387. { 0x03B1, "alpha", CSUP(CS_GREEK) },
  388. { 0x03AC, "alphatonos", CSUP(CS_GREEK) },
  389. { 0x0101, "amacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  390. { 0x0026, "ampersand", CS_ALL },
  391. { 0x0105, "aogonek", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  392. { 0x00E5, "aring", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  393. { 0x005E, "asciicircum", CS_ALL },
  394. { 0x007E, "asciitilde", CS_ALL },
  395. { 0x002A, "asterisk", CS_ALL },
  396. { 0x0040, "at", CS_ALL },
  397. { 0x00E3, "atilde", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  398. { 0x0062, "b", CS_ALL },
  399. { 0x005C, "backslash", CS_ALL },
  400. { 0x007C, "bar", CS_ALL },
  401. { 0x03B2, "beta", CSUP(CS_GREEK) },
  402. { 0x007B, "braceleft", CS_ALL },
  403. { 0x007D, "braceright", CS_ALL },
  404. { 0x005B, "bracketleft", CS_ALL },
  405. { 0x005D, "bracketright", CS_ALL },
  406. { 0x02D8, "breve", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  407. { 0x00A6, "brokenbar", CS_ALL },
  408. { 0x2022, "bullet", CS_ALL },
  409. { 0x0063, "c", CS_ALL },
  410. { 0x0107, "cacute", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  411. { 0x02C7, "caron", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  412. { 0x010D, "ccaron", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  413. { 0x00E7, "ccedilla", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  414. { 0x00B8, "cedilla", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  415. { 0x00A2, "cent", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  416. { 0x03C7, "chi", CSUP(CS_GREEK) },
  417. { 0x02C6, "circumflex", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  418. { 0x003A, "colon", CS_ALL },
  419. { 0x002C, "comma", CS_ALL },
  420. { 0xF6C3, "commaaccent", CSUP(CS_314) },
  421. { 0x00A9, "copyright", CS_ALL },
  422. { 0x00A4, "currency", CSUP(CS_EASTEUROPE) | CSUP(CS_RUSSIAN) | CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  423. { 0x0064, "d", CS_ALL },
  424. { 0x2020, "dagger", CS_ALL },
  425. { 0x2021, "daggerdbl", CS_ALL },
  426. { 0x010F, "dcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  427. { 0x0111, "dcroat", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  428. { 0x00B0, "degree", CSUP(CS_EASTEUROPE) | CSUP(CS_RUSSIAN) | CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  429. { 0x03B4, "delta", CSUP(CS_GREEK) },
  430. { 0x00A8, "dieresis", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  431. { 0x0385, "dieresistonos", CSUP(CS_GREEK) },
  432. { 0x00F7, "divide", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  433. { 0x0024, "dollar", CS_ALL },
  434. { 0x02D9, "dotaccent", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  435. { 0x0131, "dotlessi", CSUP(CS_TURKISH) | CSUP(CS_228) },
  436. { 0x0065, "e", CS_ALL },
  437. { 0x00E9, "eacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  438. { 0x011B, "ecaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  439. { 0x00EA, "ecircumflex", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  440. { 0x00EB, "edieresis", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  441. { 0x0117, "edot", CSUP(CS_BALTIC) }, // TODO
  442. { 0x0117, "edotaccent", CSUP(CS_314) },
  443. { 0x00E8, "egrave", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  444. { 0x0038, "eight", CS_ALL },
  445. { 0x2026, "ellipsis", CS_ALL },
  446. { 0x0113, "emacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  447. { 0x2014, "emdash", CS_ALL },
  448. { 0x2013, "endash", CS_ALL },
  449. { 0x0119, "eogonek", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  450. { 0x03B5, "epsilon", CSUP(CS_GREEK) },
  451. { 0x03AD, "epsilontonos", CSUP(CS_GREEK) },
  452. { 0x003D, "equal", CS_ALL },
  453. { 0x03B7, "eta", CSUP(CS_GREEK) },
  454. { 0x03AE, "etatonos", CSUP(CS_GREEK) },
  455. { 0x00F0, "eth", CSUP(CS_ANSI) | CSUP(CS_228) },
  456. { 0x0021, "exclam", CS_ALL },
  457. { 0x00A1, "exclamdown", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  458. { 0x0066, "f", CS_ALL },
  459. { 0xFB01, "fi", CSUP(CS_228) },
  460. { 0x0035, "five", CS_ALL },
  461. { 0xFB02, "fl", CSUP(CS_228) },
  462. { 0x0192, "florin", CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  463. { 0x0034, "four", CS_ALL },
  464. { 0x2044, "fraction", CSUP(CS_228) },
  465. { 0x0067, "g", CS_ALL },
  466. { 0x03B3, "gamma", CSUP(CS_GREEK) },
  467. { 0x011F, "gbreve", CSUP(CS_TURKISH) | CSUP(CS_314) },
  468. { 0x0123, "gcedilla", CSUP(CS_BALTIC) }, // TODO
  469. { 0x0123, "gcommaaccent", CSUP(CS_314) },
  470. { 0x00DF, "germandbls", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  471. { 0x0060, "grave", CS_ALL },
  472. { 0x003E, "greater", CS_ALL },
  473. { 0x2265, "greaterequal", CSUP(CS_314) },
  474. { 0x00AB, "guillemotleft", CS_ALL },
  475. { 0x00BB, "guillemotright", CS_ALL },
  476. { 0x2039, "guilsinglleft", CS_ALL },
  477. { 0x203A, "guilsinglright", CS_ALL },
  478. { 0x0068, "h", CS_ALL },
  479. { 0x02DD, "hungarumlaut", CSUP(CS_EASTEUROPE) | CSUP(CS_228) },
  480. { 0x002D, "hyphen", CS_ALL },
  481. { 0x0069, "i", CS_ALL },
  482. { 0x00ED, "iacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  483. { 0x00EE, "icircumflex", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  484. { 0x00EF, "idieresis", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  485. { 0x00EC, "igrave", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  486. { 0x012B, "imacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  487. { 0x012F, "iogonek", CSUP(CS_BALTIC) | CSUP(CS_314) },
  488. { 0x03B9, "iota", CSUP(CS_GREEK) },
  489. { 0x0390, "iotadieresistonos", CSUP(CS_GREEK) },
  490. { 0x03CA, "iotadieresis", CSUP(CS_GREEK) },
  491. { 0x03AF, "iotatonos", CSUP(CS_GREEK) },
  492. { 0x006A, "j", CS_ALL },
  493. { 0x006B, "k", CS_ALL },
  494. { 0x03BA, "kappa", CSUP(CS_GREEK) },
  495. { 0x0137, "kcedilla", CSUP(CS_BALTIC) }, // TODO
  496. { 0x0137, "kcommaaccent", CSUP(CS_314) },
  497. { 0x006C, "l", CS_ALL },
  498. { 0x013A, "lacute", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  499. { 0x03BB, "lambda", CSUP(CS_GREEK) },
  500. { 0x013E, "lcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  501. { 0x013C, "lcedilla", CSUP(CS_BALTIC) }, // TODO
  502. { 0x013C, "lcommaaccent", CSUP(CS_314) },
  503. { 0x003C, "less", CS_ALL },
  504. { 0x2264, "lessequal", CSUP(CS_314) },
  505. { 0x00AC, "logicalnot", CS_ALL },
  506. { 0x25CA, "lozenge", CSUP(CS_314) },
  507. { 0x0142, "lslash", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  508. { 0x006D, "m", CS_ALL },
  509. { 0x00AF, "macron", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  510. { 0x2212, "minus", CSUP(CS_228) },
  511. { 0x00B5, "mu", CS_ALL },
  512. { 0x03BC, "mu", CSUP(CS_GREEK) },
  513. { 0x00D7, "multiply", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  514. { 0x006E, "n", CS_ALL },
  515. { 0x0144, "nacute", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  516. { 0x00A0, "space", CS_ALL }, // 'nbspace'
  517. { 0x0148, "ncaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  518. { 0x0146, "ncedilla", CSUP(CS_BALTIC) }, // TODO
  519. { 0x0146, "ncommaaccent", CSUP(CS_314) },
  520. { 0x0039, "nine", CS_ALL },
  521. { 0x2260, "notequal", CSUP(CS_314) },
  522. { 0x00F1, "ntilde", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  523. { 0x03BD, "nu", CSUP(CS_GREEK) },
  524. { 0x0023, "numbersign", CS_ALL },
  525. { 0x006F, "o", CS_ALL },
  526. { 0x00F3, "oacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  527. { 0x00F4, "ocircumflex", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  528. { 0x00F6, "odieresis", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  529. { 0x0153, "oe", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  530. { 0x02DB, "ogonek", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  531. { 0x00F2, "ograve", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  532. { 0x0151, "ohungarumlaut", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  533. { 0x014D, "omacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  534. { 0x03C9, "omega", CSUP(CS_GREEK) },
  535. { 0x03CE, "omegatonos", CSUP(CS_GREEK) },
  536. { 0x03BF, "omicron", CSUP(CS_GREEK) },
  537. { 0x03CC, "omicrontonos", CSUP(CS_GREEK) },
  538. { 0x0031, "one", CS_ALL },
  539. { 0x00BD, "onehalf", CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  540. { 0x00BC, "onequarter", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  541. { 0x00B9, "onesuperior", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  542. { 0x00AA, "ordfeminine", CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  543. { 0x00BA, "ordmasculine", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  544. { 0x00F8, "oslash", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  545. { 0x00F5, "otilde", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  546. { 0x0070, "p", CS_ALL },
  547. { 0x00B6, "paragraph", CS_ALL },
  548. { 0x0028, "parenleft", CS_ALL },
  549. { 0x0029, "parenright", CS_ALL },
  550. { 0x2202, "partialdiff", CSUP(CS_314) },
  551. { 0x0025, "percent", CS_ALL },
  552. { 0x002E, "period", CS_ALL },
  553. { 0x00B7, "periodcentered", CS_ALL },
  554. { 0x2030, "perthousand", CS_ALL },
  555. { 0x03C6, "phi", CSUP(CS_GREEK) },
  556. { 0x03C0, "pi", CSUP(CS_GREEK) },
  557. { 0x002B, "plus", CS_ALL },
  558. { 0x00B1, "plusminus", CS_ALL },
  559. { 0x03C8, "psi", CSUP(CS_GREEK) },
  560. { 0x0071, "q", CS_ALL },
  561. { 0x003F, "question", CS_ALL },
  562. { 0x00BF, "questiondown", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  563. { 0x0022, "quotedbl", CS_ALL },
  564. { 0x201E, "quotedblbase", CS_ALL },
  565. { 0x201C, "quotedblleft", CS_ALL },
  566. { 0x201D, "quotedblright", CS_ALL },
  567. { 0x2018, "quoteleft", CS_ALL },
  568. { 0x2019, "quoteright", CS_ALL },
  569. { 0x201A, "quotesinglbase", CS_ALL },
  570. { 0x0027, "quotesingle", CS_ALL },
  571. { 0x0072, "r", CS_ALL },
  572. { 0x0155, "racute", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  573. { 0x221A, "radical", CSUP(CS_314) },
  574. { 0x0159, "rcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  575. { 0x0157, "rcedilla", CSUP(CS_BALTIC) }, // TODO
  576. { 0x0157, "rcommaaccent", CSUP(CS_314) },
  577. { 0x00AE, "registered", CS_ALL },
  578. { 0x03C1, "rho", CSUP(CS_GREEK) },
  579. { 0x02DA, "ring", CSUP(CS_BALTIC) | CSUP(CS_228) },
  580. { 0x0073, "s", CS_ALL },
  581. { 0x015B, "sacute", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  582. { 0x0161, "scaron", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  583. { 0xF6C2, "scedilla", CSUP(CS_314) },
  584. { 0x015F, "scommaaccent", CSUP(CS_EASTEUROPE) | CSUP(CS_TURKISH) | CSUP(CS_314) },
  585. { 0x00A7, "section", CS_ALL },
  586. { 0x003B, "semicolon", CS_ALL },
  587. { 0x0037, "seven", CS_ALL },
  588. { 0x00AD, "hyphen", CS_ALL }, // 'sfthyphen'
  589. { 0x03C3, "sigma", CSUP(CS_GREEK) },
  590. { 0x03C2, "sigma1", CSUP(CS_GREEK) },
  591. { 0x0036, "six", CS_ALL },
  592. { 0x002F, "slash", CS_ALL },
  593. { 0x0020, "space", CS_ALL },
  594. { 0x00A3, "sterling", CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  595. { 0x2211, "summation", CSUP(CS_314) },
  596. { 0x0074, "t", CS_ALL },
  597. { 0x03C4, "tau", CSUP(CS_GREEK) },
  598. { 0x0165, "tcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  599. { 0x0163, "tcommaaccent", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  600. { 0x03B8, "theta", CSUP(CS_GREEK) },
  601. { 0x00FE, "thorn", CSUP(CS_ANSI) | CSUP(CS_228) },
  602. { 0x0033, "three", CS_ALL },
  603. { 0x00BE, "threequarters", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  604. { 0x00B3, "threesuperior", CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  605. { 0x02DC, "tilde", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_228) },
  606. { 0x0384, "tonos", CSUP(CS_GREEK) },
  607. { 0x2122, "trademark", CS_ALL },
  608. { 0x0032, "two", CS_ALL },
  609. { 0x00B2, "twosuperior", CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  610. { 0x0075, "u", CS_ALL },
  611. { 0x00FA, "uacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  612. { 0x00FB, "ucircumflex", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  613. { 0x00FC, "udieresis", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_BALTIC) | CSUP(CS_228) },
  614. { 0x00F9, "ugrave", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  615. { 0x0171, "uhungarumlaut", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  616. { 0x016B, "umacron", CSUP(CS_BALTIC) | CSUP(CS_314) },
  617. { 0x005F, "underscore", CS_ALL },
  618. { 0x0173, "uogonek", CSUP(CS_BALTIC) | CSUP(CS_314) },
  619. { 0x03C5, "upsilon", CSUP(CS_GREEK) },
  620. { 0x03B0, "upsilon-dieresistonos", CSUP(CS_GREEK) },
  621. { 0x03CB, "upsilondieresis", CSUP(CS_GREEK) },
  622. { 0x03CD, "upsilontonos", CSUP(CS_GREEK) },
  623. { 0x016F, "uring", CSUP(CS_EASTEUROPE) | CSUP(CS_314) },
  624. { 0x0076, "v", CS_ALL },
  625. { 0x0077, "w", CS_ALL },
  626. { 0x0078, "x", CS_ALL },
  627. { 0x03BE, "xi", CSUP(CS_GREEK) },
  628. { 0x0079, "y", CS_ALL },
  629. { 0x00FD, "yacute", CSUP(CS_EASTEUROPE) | CSUP(CS_ANSI) | CSUP(CS_228) },
  630. { 0x00FF, "ydieresis", CSUP(CS_ANSI) | CSUP(CS_TURKISH) | CSUP(CS_228) },
  631. { 0x00A5, "yen", CSUP(CS_ANSI) | CSUP(CS_GREEK) | CSUP(CS_TURKISH) | CSUP(CS_HEBREW) | CSUP(CS_ARABIC) | CSUP(CS_228) },
  632. { 0x007A, "z", CS_ALL },
  633. { 0x017A, "zacute", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  634. { 0x017E, "zcaron", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_228) | CSUP(CS_ANSI)},
  635. { 0x017C, "zdotaccent", CSUP(CS_EASTEUROPE) | CSUP(CS_BALTIC) | CSUP(CS_314) },
  636. { 0x0030, "zero", CS_ALL },
  637. { 0x03B6, "zeta", CSUP(CS_GREEK) },
  638. };
  639. //
  640. // List of standard codepages. These are codepages for which we store
  641. // predefined GLYPHSETDATA structures. The order of WINCODEPAGE structs
  642. // in this list MUST correspond to the order of codepages (charsets) defined
  643. // in the CHSETSUPPORT enumerated type.
  644. //
  645. WINCODEPAGE aStdCPList[] =
  646. {
  647. { 1, ADOBE228_GS_NAME, { CS_228 } },
  648. { 2, ADOBE314_GS_NAME, { CS_228, CS_314 } },
  649. { 1, EASTEUROPE_GS_NAME, { CS_EASTEUROPE } },
  650. { 1, SYMBOL_GS_NAME, { CS_SYMBOL } },
  651. { 1, CYRILLIC_GS_NAME, { CS_RUSSIAN } },
  652. { 1, ANSI_GS_NAME, { CS_ANSI } },
  653. { 1, GREEK_GS_NAME, { CS_GREEK } },
  654. { 1, TURKISH_GS_NAME, { CS_TURKISH } },
  655. { 1, HEBREW_GS_NAME, { CS_HEBREW } },
  656. { 1, ARABIC_GS_NAME, { CS_ARABIC } },
  657. { 1, BALTIC_GS_NAME, { CS_BALTIC } },
  658. { 2, ANSI_CYR_GS_NAME, { CS_ANSI, CS_RUSSIAN } },
  659. { 5, ANSI_CYR_EE_BAL_TURK_GS_NAME, { CS_ANSI, CS_RUSSIAN, CS_EASTEUROPE, CS_BALTIC, CS_TURKISH } },
  660. { 1, CHN_BIG5_GS_NAME, { CS_CHINESEBIG5 } },
  661. { 1, CHN_SMPL_GBK_GS_NAME, { CS_GB2312 } },
  662. { 1, SHIFTJIS_GS_NAME, { CS_SHIFTJIS } },
  663. { 1, SHIFTJIS_P_GS_NAME, { CS_SHIFTJISP } },
  664. { 1, SHIFTJIS_83PV_GS_NAME, { CS_SHIFTJIS83 } },
  665. { 1, KSCMS_UHC_GS_NAME, { CS_HANGEUL } },
  666. { 1, KSCMS_UHC_HW_GS_NAME, { CS_HANGEULHW } },
  667. { 1, KSC_JOHAB_GS_NAME, { CS_JOHAB } }
  668. };
  669. //
  670. // The Unicode CodePage. This is used primarily for support of .PFB fonts
  671. // when we need to obtain CP/CC from a Unicode value. This code page is
  672. // not placed in aStdCPList above since we don't actually want any NTMs
  673. // to reference this GLYPHSET.
  674. //
  675. WINCODEPAGE UnicodePage =
  676. {
  677. 8, UNICODE_GS_NAME,
  678. {
  679. CS_ANSI,
  680. CS_EASTEUROPE,
  681. CS_RUSSIAN,
  682. CS_GREEK,
  683. CS_TURKISH,
  684. CS_HEBREW,
  685. CS_ARABIC,
  686. CS_BALTIC
  687. }
  688. };
  689. WINCPTOPS aPStoCP[CS_MAX] =
  690. {
  691. //
  692. // Made up code page.
  693. //
  694. { 0xFFF1, ADOBE228_CHARSET, ADOBE228_GS_NAME, 229,
  695. {
  696. { "A", 0x0041 },
  697. { "AE", 0x00C6 },
  698. { "Aacute", 0x00C1 },
  699. { "Acircumflex", 0x00C2 },
  700. { "Adieresis", 0x00C4 },
  701. { "Agrave", 0x00C0 },
  702. { "Aring", 0x00C5 },
  703. { "Atilde", 0x00C3 },
  704. { "B", 0x0042 },
  705. { "C", 0x0043 },
  706. { "Ccedilla", 0x00C7 },
  707. { "D", 0x0044 },
  708. { "E", 0x0045 },
  709. { "Eacute", 0x00C9 },
  710. { "Ecircumflex", 0x00CA },
  711. { "Edieresis", 0x00CB },
  712. { "Egrave", 0x00C8 },
  713. { "Eth", 0x00D0 },
  714. { "Euro", 0x0080 },
  715. { "F", 0x0046 },
  716. { "G", 0x0047 },
  717. { "H", 0x0048 },
  718. { "I", 0x0049 },
  719. { "Iacute", 0x00CD },
  720. { "Icircumflex", 0x00CE },
  721. { "Idieresis", 0x00CF },
  722. { "Igrave", 0x00CC },
  723. { "J", 0x004A },
  724. { "K", 0x004B },
  725. { "L", 0x004C },
  726. { "Lslash", 0x0009 },
  727. { "M", 0x004D },
  728. { "N", 0x004E },
  729. { "Ntilde", 0x00D1 },
  730. { "O", 0x004F },
  731. { "OE", 0x008C },
  732. { "Oacute", 0x00D3 },
  733. { "Ocircumflex", 0x00D4 },
  734. { "Odieresis", 0x00D6 },
  735. { "Ograve", 0x00D2 },
  736. { "Oslash", 0x00D8 },
  737. { "Otilde", 0x00D5 },
  738. { "P", 0x0050 },
  739. { "Q", 0x0051 },
  740. { "R", 0x0052 },
  741. { "S", 0x0053 },
  742. { "Scaron", 0x008A },
  743. { "T", 0x0054 },
  744. { "Thorn", 0x00DE },
  745. { "U", 0x0055 },
  746. { "Uacute", 0x00DA },
  747. { "Ucircumflex", 0x00DB },
  748. { "Udieresis", 0x00DC },
  749. { "Ugrave", 0x00D9 },
  750. { "V", 0x0056 },
  751. { "W", 0x0057 },
  752. { "X", 0x0058 },
  753. { "Y", 0x0059 },
  754. { "Yacute", 0x00DD },
  755. { "Ydieresis", 0x009F },
  756. { "Z", 0x005A },
  757. { "Zcaron", 0x000E },
  758. { "a", 0x0061 },
  759. { "aacute", 0x00E1 },
  760. { "acircumflex", 0x00E2 },
  761. { "acute", 0x00B4 },
  762. { "adieresis", 0x00E4 },
  763. { "ae", 0x00E6 },
  764. { "agrave", 0x00E0 },
  765. { "ampersand", 0x0026 },
  766. { "aring", 0x00E5 },
  767. { "asciicircum", 0x005E },
  768. { "asciitilde", 0x007E },
  769. { "asterisk", 0x002A },
  770. { "at", 0x0040 },
  771. { "atilde", 0x00E3 },
  772. { "b", 0x0062 },
  773. { "backslash", 0x005C },
  774. { "bar", 0x007C },
  775. { "braceleft", 0x007B },
  776. { "braceright", 0x007D },
  777. { "bracketleft", 0x005B },
  778. { "bracketright", 0x005D },
  779. { "breve", 0x0001 },
  780. { "brokenbar", 0x00A6 },
  781. { "bullet", 0x0095 },
  782. { "c", 0x0063 },
  783. { "caron", 0x0002 },
  784. { "ccedilla", 0x00E7 },
  785. { "cedilla", 0x00B8 },
  786. { "cent", 0x00A2 },
  787. { "circumflex", 0x0088 },
  788. { "colon", 0x003A },
  789. { "comma", 0x002C },
  790. { "copyright", 0x00A9 },
  791. { "currency", 0x00A4 },
  792. { "d", 0x0064 },
  793. { "dagger", 0x0086 },
  794. { "daggerdbl", 0x0087 },
  795. { "degree", 0x00B0 },
  796. { "dieresis", 0x00A8 },
  797. { "divide", 0x00F7 },
  798. { "dollar", 0x0024 },
  799. { "dotaccent", 0x0003 },
  800. { "dotlessi", 0x0004 },
  801. { "e", 0x0065 },
  802. { "eacute", 0x00E9 },
  803. { "ecircumflex", 0x00EA },
  804. { "edieresis", 0x00EB },
  805. { "egrave", 0x00E8 },
  806. { "eight", 0x0038 },
  807. { "ellipsis", 0x0085 },
  808. { "emdash", 0x0097 },
  809. { "endash", 0x0096 },
  810. { "equal", 0x003D },
  811. { "eth", 0x00F0 },
  812. { "exclam", 0x0021 },
  813. { "exclamdown", 0x00A1 },
  814. { "f", 0x0066 },
  815. { "fi", 0x0005 },
  816. { "five", 0x0035 },
  817. { "fl", 0x0006 },
  818. { "florin", 0x0083 },
  819. { "four", 0x0034 },
  820. { "fraction", 0x0007 },
  821. { "g", 0x0067 },
  822. { "germandbls", 0x00DF },
  823. { "grave", 0x0060 },
  824. { "greater", 0x003E },
  825. { "guillemotleft", 0x00AB },
  826. { "guillemotright", 0x00BB },
  827. { "guilsinglleft", 0x008B },
  828. { "guilsinglright", 0x009B },
  829. { "h", 0x0068 },
  830. { "hungarumlaut", 0x0008 },
  831. { "hyphen", 0x002D },
  832. { "i", 0x0069 },
  833. { "iacute", 0x00ED },
  834. { "icircumflex", 0x00EE },
  835. { "idieresis", 0x00EF },
  836. { "igrave", 0x00EC },
  837. { "j", 0x006A },
  838. { "k", 0x006B },
  839. { "l", 0x006C },
  840. { "less", 0x003C },
  841. { "logicalnot", 0x00AC },
  842. { "lslash", 0x000A },
  843. { "m", 0x006D },
  844. { "macron", 0x00AF },
  845. { "minus", 0x000B },
  846. { "mu", 0x00B5 },
  847. { "multiply", 0x00D7 },
  848. { "n", 0x006E },
  849. { "nine", 0x0039 },
  850. { "ntilde", 0x00F1 },
  851. { "numbersign", 0x0023 },
  852. { "o", 0x006F },
  853. { "oacute", 0x00F3 },
  854. { "ocircumflex", 0x00F4 },
  855. { "odieresis", 0x00F6 },
  856. { "oe", 0x009C },
  857. { "ogonek", 0x000C },
  858. { "ograve", 0x00F2 },
  859. { "one", 0x0031 },
  860. { "onehalf", 0x00BD },
  861. { "onequarter", 0x00BC },
  862. { "onesuperior", 0x00B9 },
  863. { "ordfeminine", 0x00AA },
  864. { "ordmasculine", 0x00BA },
  865. { "oslash", 0x00F8 },
  866. { "otilde", 0x00F5 },
  867. { "p", 0x0070 },
  868. { "paragraph", 0x00B6 },
  869. { "parenleft", 0x0028 },
  870. { "parenright", 0x0029 },
  871. { "percent", 0x0025 },
  872. { "period", 0x002E },
  873. { "periodcentered", 0x00B7 },
  874. { "perthousand", 0x0089 },
  875. { "plus", 0x002B },
  876. { "plusminus", 0x00B1 },
  877. { "q", 0x0071 },
  878. { "question", 0x003F },
  879. { "questiondown", 0x00BF },
  880. { "quotedbl", 0x0022 },
  881. { "quotedblbase", 0x0084 },
  882. { "quotedblleft", 0x0093 },
  883. { "quotedblright", 0x0094 },
  884. { "quoteleft", 0x0091 },
  885. { "quoteright", 0x0092 },
  886. { "quotesinglbase", 0x0082 },
  887. { "quotesingle", 0x0027 },
  888. { "r", 0x0072 },
  889. { "registered", 0x00AE },
  890. { "ring", 0x000D },
  891. { "s", 0x0073 },
  892. { "scaron", 0x009A },
  893. { "section", 0x00A7 },
  894. { "semicolon", 0x003B },
  895. { "seven", 0x0037 },
  896. { "six", 0x0036 },
  897. { "slash", 0x002F },
  898. { "space", 0x0020 },
  899. { "sterling", 0x00A3 },
  900. { "t", 0x0074 },
  901. { "thorn", 0x00FE },
  902. { "three", 0x0033 },
  903. { "threequarters", 0x00BE },
  904. { "threesuperior", 0x00B3 },
  905. { "tilde", 0x0098 },
  906. { "trademark", 0x0099 },
  907. { "two", 0x0032 },
  908. { "twosuperior", 0x00B2 },
  909. { "u", 0x0075 },
  910. { "uacute", 0x00FA },
  911. { "ucircumflex", 0x00FB },
  912. { "udieresis", 0x00FC },
  913. { "ugrave", 0x00F9 },
  914. { "underscore", 0x005F },
  915. { "v", 0x0076 },
  916. { "w", 0x0077 },
  917. { "x", 0x0078 },
  918. { "y", 0x0079 },
  919. { "yacute", 0x00FD },
  920. { "ydieresis", 0x00FF },
  921. { "yen", 0x00A5 },
  922. { "z", 0x007A },
  923. { "zcaron", 0x000F },
  924. { "zero", 0x0030 },
  925. }
  926. },
  927. //
  928. // Made up code page.
  929. // remember to increase the count (follows ADOBE314_GS_NAME) when addin gnew chars to this Encoding
  930. //
  931. { 0xFFF2, ADOBE314_CHARSET, ADOBE314_GS_NAME, 0x0056,
  932. {
  933. { "Abreve", 0x0001 },
  934. { "Amacron", 0x0002 },
  935. { "Aogonek", 0x0003 },
  936. { "Cacute", 0x0004 },
  937. { "Ccaron", 0x0005 },
  938. { "Dcaron", 0x0006 },
  939. { "Dcroat", 0x0007 },
  940. { "Delta", 0x0008 },
  941. { "Ecaron", 0x0009 },
  942. { "Edotaccent", 0x000A },
  943. { "Emacron", 0x000B },
  944. { "Eogonek", 0x000C },
  945. { "Gbreve", 0x000D },
  946. { "Gcommaaccent", 0x000E },
  947. { "Idotaccent", 0x000F },
  948. { "Imacron", 0x0010 },
  949. { "Iogonek", 0x0011 },
  950. { "Kcommaaccent", 0x0012 },
  951. { "Lacute", 0x0013 },
  952. { "Lcaron", 0x0014 },
  953. { "Lcommaaccent", 0x0015 },
  954. { "Nacute", 0x0016 },
  955. { "Ncaron", 0x0017 },
  956. { "Ncommaaccent", 0x0018 },
  957. { "Ohungarumlaut", 0x0019 },
  958. { "Omacron", 0x001A },
  959. { "Racute", 0x001B },
  960. { "Rcaron", 0x001C },
  961. { "Rcommaaccent", 0x001D },
  962. { "Sacute", 0x001E },
  963. { "Scedilla", 0x001F },
  964. { "Scommaaccent", 0x0020 },
  965. { "Tcaron", 0x0021 },
  966. { "Tcommaaccent", 0x0022 },
  967. { "Uhungarumlaut", 0x0023 },
  968. { "Umacron", 0x0024 },
  969. { "Uogonek", 0x0025 },
  970. { "Uring", 0x0026 },
  971. { "Zacute", 0x0027 },
  972. { "Zdotaccent", 0x0028 },
  973. { "abreve", 0x0029 },
  974. { "amacron", 0x002A },
  975. { "aogonek", 0x002B },
  976. { "cacute", 0x002C },
  977. { "ccaron", 0x002D },
  978. { "commaaccent", 0x002E },
  979. { "dcaron", 0x002F },
  980. { "dcroat", 0x0030 },
  981. { "ecaron", 0x0031 },
  982. { "edotaccent", 0x0032 },
  983. { "emacron", 0x0033 },
  984. { "eogonek", 0x0034 },
  985. { "gbreve", 0x0035 },
  986. { "gcommaaccent", 0x0036 },
  987. { "greaterequal", 0x0037 },
  988. { "imacron", 0x0038 },
  989. { "iogonek", 0x0039 },
  990. { "kcommaaccent", 0x003A },
  991. { "lacute", 0x003B },
  992. { "lcaron", 0x003C },
  993. { "lcommaaccent", 0x003D },
  994. { "lessequal", 0x003E },
  995. { "lozenge", 0x003F },
  996. { "nacute", 0x0040 },
  997. { "ncaron", 0x0041 },
  998. { "ncommaaccent", 0x0042 },
  999. { "notequal", 0x0043 },
  1000. { "ohungarumlaut", 0x0044 },
  1001. { "omacron", 0x0045 },
  1002. { "partialdiff", 0x0046 },
  1003. { "racute", 0x0047 },
  1004. { "radical", 0x0048 },
  1005. { "rcaron", 0x0049 },
  1006. { "rcommaaccent", 0x004A },
  1007. { "sacute", 0x004B },
  1008. { "scedilla", 0x004C },
  1009. { "scommaaccent", 0x004D },
  1010. { "summation", 0x004E },
  1011. { "tcaron", 0x004F },
  1012. { "tcommaaccent", 0x0050 },
  1013. { "uhungarumlaut", 0x0051 },
  1014. { "umacron", 0x0052 },
  1015. { "uogonek", 0x0053 },
  1016. { "uring", 0x0054 },
  1017. { "zacute", 0x0055 },
  1018. { "zdotaccent", 0x0056 },
  1019. }
  1020. },
  1021. //
  1022. // Code page 1250: Win 3.1 Eastern European
  1023. //
  1024. { 1250, EASTEUROPE_CHARSET, EASTEUROPE_GS_NAME, 218,
  1025. {
  1026. { "A", 0x0041 },
  1027. { "Aacute", 0x00C1 },
  1028. { "Abreve", 0x00C3 },
  1029. { "Acircumflex", 0x00C2 },
  1030. { "Adieresis", 0x00C4 },
  1031. { "Aogonek", 0x00A5 },
  1032. { "B", 0x0042 },
  1033. { "C", 0x0043 },
  1034. { "Cacute", 0x00C6 },
  1035. { "Ccaron", 0x00C8 },
  1036. { "Ccedilla", 0x00C7 },
  1037. { "D", 0x0044 },
  1038. { "Dcaron", 0x00CF },
  1039. { "Dcroat", 0x00D0 },
  1040. { "E", 0x0045 },
  1041. { "Eacute", 0x00C9 },
  1042. { "Ecaron", 0x00CC },
  1043. { "Edieresis", 0x00CB },
  1044. { "Eogonek", 0x00CA },
  1045. { "Euro", 0x0080 },
  1046. { "F", 0x0046 },
  1047. { "G", 0x0047 },
  1048. { "H", 0x0048 },
  1049. { "I", 0x0049 },
  1050. { "Iacute", 0x00CD },
  1051. { "Icircumflex", 0x00CE },
  1052. { "J", 0x004A },
  1053. { "K", 0x004B },
  1054. { "L", 0x004C },
  1055. { "Lacute", 0x00C5 },
  1056. { "Lcaron", 0x00BC },
  1057. { "Lslash", 0x00A3 },
  1058. { "M", 0x004D },
  1059. { "N", 0x004E },
  1060. { "Nacute", 0x00D1 },
  1061. { "Ncaron", 0x00D2 },
  1062. { "O", 0x004F },
  1063. { "Oacute", 0x00D3 },
  1064. { "Ocircumflex", 0x00D4 },
  1065. { "Odieresis", 0x00D6 },
  1066. { "Ohungarumlaut", 0x00D5 },
  1067. { "P", 0x0050 },
  1068. { "Q", 0x0051 },
  1069. { "R", 0x0052 },
  1070. { "Racute", 0x00C0 },
  1071. { "Rcaron", 0x00D8 },
  1072. { "S", 0x0053 },
  1073. { "Sacute", 0x008C },
  1074. { "Scaron", 0x008A },
  1075. { "Scommaaccent", 0x00AA },
  1076. { "T", 0x0054 },
  1077. { "Tcaron", 0x008D },
  1078. { "Tcommaaccent", 0x00DE },
  1079. { "U", 0x0055 },
  1080. { "Uacute", 0x00DA },
  1081. { "Udieresis", 0x00DC },
  1082. { "Uhungarumlaut", 0x00DB },
  1083. { "Uring", 0x00D9 },
  1084. { "V", 0x0056 },
  1085. { "W", 0x0057 },
  1086. { "X", 0x0058 },
  1087. { "Y", 0x0059 },
  1088. { "Yacute", 0x00DD },
  1089. { "Z", 0x005A },
  1090. { "Zacute", 0x008F },
  1091. { "Zcaron", 0x008E },
  1092. { "Zdotaccent", 0x00AF },
  1093. { "a", 0x0061 },
  1094. { "aacute", 0x00E1 },
  1095. { "abreve", 0x00E3 },
  1096. { "acircumflex", 0x00E2 },
  1097. { "acute", 0x00B4 },
  1098. { "adieresis", 0x00E4 },
  1099. { "ampersand", 0x0026 },
  1100. { "aogonek", 0x00B9 },
  1101. { "asciicircum", 0x005E },
  1102. { "asciitilde", 0x007E },
  1103. { "asterisk", 0x002A },
  1104. { "at", 0x0040 },
  1105. { "b", 0x0062 },
  1106. { "backslash", 0x005C },
  1107. { "bar", 0x007C },
  1108. { "braceleft", 0x007B },
  1109. { "braceright", 0x007D },
  1110. { "bracketleft", 0x005B },
  1111. { "bracketright", 0x005D },
  1112. { "breve", 0x00A2 },
  1113. { "brokenbar", 0x00A6 },
  1114. { "bullet", 0x0095 },
  1115. { "c", 0x0063 },
  1116. { "cacute", 0x00E6 },
  1117. { "caron", 0x00A1 },
  1118. { "ccaron", 0x00E8 },
  1119. { "ccedilla", 0x00E7 },
  1120. { "cedilla", 0x00B8 },
  1121. { "colon", 0x003A },
  1122. { "comma", 0x002C },
  1123. { "copyright", 0x00A9 },
  1124. { "currency", 0x00A4 },
  1125. { "d", 0x0064 },
  1126. { "dagger", 0x0086 },
  1127. { "daggerdbl", 0x0087 },
  1128. { "dcaron", 0x00EF },
  1129. { "dcroat", 0x00F0 },
  1130. { "degree", 0x00B0 },
  1131. { "dieresis", 0x00A8 },
  1132. { "divide", 0x00F7 },
  1133. { "dollar", 0x0024 },
  1134. { "dotaccent", 0x00FF },
  1135. { "e", 0x0065 },
  1136. { "eacute", 0x00E9 },
  1137. { "ecaron", 0x00EC },
  1138. { "edieresis", 0x00EB },
  1139. { "eight", 0x0038 },
  1140. { "ellipsis", 0x0085 },
  1141. { "emdash", 0x0097 },
  1142. { "endash", 0x0096 },
  1143. { "eogonek", 0x00EA },
  1144. { "equal", 0x003D },
  1145. { "exclam", 0x0021 },
  1146. { "f", 0x0066 },
  1147. { "five", 0x0035 },
  1148. { "four", 0x0034 },
  1149. { "g", 0x0067 },
  1150. { "germandbls", 0x00DF },
  1151. { "grave", 0x0060 },
  1152. { "greater", 0x003E },
  1153. { "guillemotleft", 0x00AB },
  1154. { "guillemotright", 0x00BB },
  1155. { "guilsinglleft", 0x008B },
  1156. { "guilsinglright", 0x009B },
  1157. { "h", 0x0068 },
  1158. { "hungarumlaut", 0x00BD },
  1159. { "hyphen", 0x002D },
  1160. { "i", 0x0069 },
  1161. { "iacute", 0x00ED },
  1162. { "icircumflex", 0x00EE },
  1163. { "j", 0x006A },
  1164. { "k", 0x006B },
  1165. { "l", 0x006C },
  1166. { "lacute", 0x00E5 },
  1167. { "lcaron", 0x00BE },
  1168. { "less", 0x003C },
  1169. { "logicalnot", 0x00AC },
  1170. { "lslash", 0x00B3 },
  1171. { "m", 0x006D },
  1172. { "mu", 0x00B5 },
  1173. { "multiply", 0x00D7 },
  1174. { "n", 0x006E },
  1175. { "nacute", 0x00F1 },
  1176. { "nbspace", 0x00A0 },
  1177. { "ncaron", 0x00F2 },
  1178. { "nine", 0x0039 },
  1179. { "numbersign", 0x0023 },
  1180. { "o", 0x006F },
  1181. { "oacute", 0x00F3 },
  1182. { "ocircumflex", 0x00F4 },
  1183. { "odieresis", 0x00F6 },
  1184. { "ogonek", 0x00B2 },
  1185. { "ohungarumlaut", 0x00F5 },
  1186. { "one", 0x0031 },
  1187. { "p", 0x0070 },
  1188. { "paragraph", 0x00B6 },
  1189. { "parenleft", 0x0028 },
  1190. { "parenright", 0x0029 },
  1191. { "percent", 0x0025 },
  1192. { "period", 0x002E },
  1193. { "periodcentered", 0x00B7 },
  1194. { "perthousand", 0x0089 },
  1195. { "plus", 0x002B },
  1196. { "plusminus", 0x00B1 },
  1197. { "q", 0x0071 },
  1198. { "question", 0x003F },
  1199. { "quotedbl", 0x0022 },
  1200. { "quotedblbase", 0x0084 },
  1201. { "quotedblleft", 0x0093 },
  1202. { "quotedblright", 0x0094 },
  1203. { "quoteleft", 0x0091 },
  1204. { "quoteright", 0x0092 },
  1205. { "quotesinglbase", 0x0082 },
  1206. { "quotesingle", 0x0027 },
  1207. { "r", 0x0072 },
  1208. { "racute", 0x00E0 },
  1209. { "rcaron", 0x00F8 },
  1210. { "registered", 0x00AE },
  1211. { "s", 0x0073 },
  1212. { "sacute", 0x009C },
  1213. { "scaron", 0x009A },
  1214. { "scommaaccent", 0x00BA },
  1215. { "section", 0x00A7 },
  1216. { "semicolon", 0x003B },
  1217. { "seven", 0x0037 },
  1218. { "sfthyphen", 0x00AD },
  1219. { "six", 0x0036 },
  1220. { "slash", 0x002F },
  1221. { "space", 0x0020 },
  1222. { "t", 0x0074 },
  1223. { "tcaron", 0x009D },
  1224. { "tcommaaccent", 0x00FE },
  1225. { "three", 0x0033 },
  1226. { "trademark", 0x0099 },
  1227. { "two", 0x0032 },
  1228. { "u", 0x0075 },
  1229. { "uacute", 0x00FA },
  1230. { "udieresis", 0x00FC },
  1231. { "uhungarumlaut", 0x00FB },
  1232. { "underscore", 0x005F },
  1233. { "uring", 0x00F9 },
  1234. { "v", 0x0076 },
  1235. { "w", 0x0077 },
  1236. { "x", 0x0078 },
  1237. { "y", 0x0079 },
  1238. { "yacute", 0x00FD },
  1239. { "z", 0x007A },
  1240. { "zacute", 0x009F },
  1241. { "zcaron", 0x009E },
  1242. { "zdotaccent", 0x00BF },
  1243. { "zero", 0x0030 }
  1244. }
  1245. },
  1246. //
  1247. // !!SPECIAL!! Code page SYMBOL_CODEPAGE(4): Symbol
  1248. //
  1249. { SYMBOL_CODEPAGE, SYMBOL_CHARSET, SYMBOL_GS_NAME, 0,
  1250. {
  1251. {"", }
  1252. }
  1253. },
  1254. //
  1255. // Code page 1251: Win 3.1 Cyrillic
  1256. //
  1257. { 1251, RUSSIAN_CHARSET, CYRILLIC_GS_NAME, 222,
  1258. {
  1259. { "A", 0x0041 },
  1260. { "B", 0x0042 },
  1261. { "C", 0x0043 },
  1262. { "D", 0x0044 },
  1263. { "E", 0x0045 },
  1264. { "Euro", 0x0088 },
  1265. { "F", 0x0046 },
  1266. { "G", 0x0047 },
  1267. { "H", 0x0048 },
  1268. { "I", 0x0049 },
  1269. { "J", 0x004A },
  1270. { "K", 0x004B },
  1271. { "L", 0x004C },
  1272. { "M", 0x004D },
  1273. { "N", 0x004E },
  1274. { "O", 0x004F },
  1275. { "P", 0x0050 },
  1276. { "Q", 0x0051 },
  1277. { "R", 0x0052 },
  1278. { "S", 0x0053 },
  1279. { "T", 0x0054 },
  1280. { "U", 0x0055 },
  1281. { "V", 0x0056 },
  1282. { "W", 0x0057 },
  1283. { "X", 0x0058 },
  1284. { "Y", 0x0059 },
  1285. { "Z", 0x005A },
  1286. { "a", 0x0061 },
  1287. { "afii10017", 0x00C0 },
  1288. { "afii10018", 0x00C1 },
  1289. { "afii10019", 0x00C2 },
  1290. { "afii10020", 0x00C3 },
  1291. { "afii10021", 0x00C4 },
  1292. { "afii10022", 0x00C5 },
  1293. { "afii10023", 0x00A8 },
  1294. { "afii10024", 0x00C6 },
  1295. { "afii10025", 0x00C7 },
  1296. { "afii10026", 0x00C8 },
  1297. { "afii10027", 0x00C9 },
  1298. { "afii10028", 0x00CA },
  1299. { "afii10029", 0x00CB },
  1300. { "afii10030", 0x00CC },
  1301. { "afii10031", 0x00CD },
  1302. { "afii10032", 0x00CE },
  1303. { "afii10033", 0x00CF },
  1304. { "afii10034", 0x00D0 },
  1305. { "afii10035", 0x00D1 },
  1306. { "afii10036", 0x00D2 },
  1307. { "afii10037", 0x00D3 },
  1308. { "afii10038", 0x00D4 },
  1309. { "afii10039", 0x00D5 },
  1310. { "afii10040", 0x00D6 },
  1311. { "afii10041", 0x00D7 },
  1312. { "afii10042", 0x00D8 },
  1313. { "afii10043", 0x00D9 },
  1314. { "afii10044", 0x00DA },
  1315. { "afii10045", 0x00DB },
  1316. { "afii10046", 0x00DC },
  1317. { "afii10047", 0x00DD },
  1318. { "afii10048", 0x00DE },
  1319. { "afii10049", 0x00DF },
  1320. { "afii10050", 0x00A5 },
  1321. { "afii10051", 0x0080 },
  1322. { "afii10052", 0x0081 },
  1323. { "afii10053", 0x00AA },
  1324. { "afii10054", 0x00BD },
  1325. { "afii10055", 0x00B2 },
  1326. { "afii10056", 0x00AF },
  1327. { "afii10057", 0x00A3 },
  1328. { "afii10058", 0x008A },
  1329. { "afii10059", 0x008C },
  1330. { "afii10060", 0x008E },
  1331. { "afii10061", 0x008D },
  1332. { "afii10062", 0x00A1 },
  1333. { "afii10065", 0x00E0 },
  1334. { "afii10066", 0x00E1 },
  1335. { "afii10067", 0x00E2 },
  1336. { "afii10068", 0x00E3 },
  1337. { "afii10069", 0x00E4 },
  1338. { "afii10070", 0x00E5 },
  1339. { "afii10071", 0x00B8 },
  1340. { "afii10072", 0x00E6 },
  1341. { "afii10073", 0x00E7 },
  1342. { "afii10074", 0x00E8 },
  1343. { "afii10075", 0x00E9 },
  1344. { "afii10076", 0x00EA },
  1345. { "afii10077", 0x00EB },
  1346. { "afii10078", 0x00EC },
  1347. { "afii10079", 0x00ED },
  1348. { "afii10080", 0x00EE },
  1349. { "afii10081", 0x00EF },
  1350. { "afii10082", 0x00F0 },
  1351. { "afii10083", 0x00F1 },
  1352. { "afii10084", 0x00F2 },
  1353. { "afii10085", 0x00F3 },
  1354. { "afii10086", 0x00F4 },
  1355. { "afii10087", 0x00F5 },
  1356. { "afii10088", 0x00F6 },
  1357. { "afii10089", 0x00F7 },
  1358. { "afii10090", 0x00F8 },
  1359. { "afii10091", 0x00F9 },
  1360. { "afii10092", 0x00FA },
  1361. { "afii10093", 0x00FB },
  1362. { "afii10094", 0x00FC },
  1363. { "afii10095", 0x00FD },
  1364. { "afii10096", 0x00FE },
  1365. { "afii10097", 0x00FF },
  1366. { "afii10098", 0x00B4 },
  1367. { "afii10099", 0x0090 },
  1368. { "afii10100", 0x0083 },
  1369. { "afii10101", 0x00BA },
  1370. { "afii10102", 0x00BE },
  1371. { "afii10103", 0x00B3 },
  1372. { "afii10104", 0x00BF },
  1373. { "afii10105", 0x00BC },
  1374. { "afii10106", 0x009A },
  1375. { "afii10107", 0x009C },
  1376. { "afii10108", 0x009E },
  1377. { "afii10109", 0x009D },
  1378. { "afii10110", 0x00A2 },
  1379. { "afii10145", 0x008F },
  1380. { "afii10193", 0x009F },
  1381. { "afii61352", 0x00B9 },
  1382. { "ampersand", 0x0026 },
  1383. { "asciicircum", 0x005E },
  1384. { "asciitilde", 0x007E },
  1385. { "asterisk", 0x002A },
  1386. { "at", 0x0040 },
  1387. { "b", 0x0062 },
  1388. { "backslash", 0x005C },
  1389. { "bar", 0x007C },
  1390. { "braceleft", 0x007B },
  1391. { "braceright", 0x007D },
  1392. { "bracketleft", 0x005B },
  1393. { "bracketright", 0x005D },
  1394. { "brokenbar", 0x00A6 },
  1395. { "bullet", 0x0095 },
  1396. { "c", 0x0063 },
  1397. { "colon", 0x003A },
  1398. { "comma", 0x002C },
  1399. { "copyright", 0x00A9 },
  1400. { "currency", 0x00A4 },
  1401. { "d", 0x0064 },
  1402. { "dagger", 0x0086 },
  1403. { "daggerdbl", 0x0087 },
  1404. { "degree", 0x00B0 },
  1405. { "dollar", 0x0024 },
  1406. { "e", 0x0065 },
  1407. { "eight", 0x0038 },
  1408. { "ellipsis", 0x0085 },
  1409. { "emdash", 0x0097 },
  1410. { "endash", 0x0096 },
  1411. { "equal", 0x003D },
  1412. { "exclam", 0x0021 },
  1413. { "f", 0x0066 },
  1414. { "five", 0x0035 },
  1415. { "four", 0x0034 },
  1416. { "g", 0x0067 },
  1417. { "grave", 0x0060 },
  1418. { "greater", 0x003E },
  1419. { "guillemotleft", 0x00AB },
  1420. { "guillemotright", 0x00BB },
  1421. { "guilsinglleft", 0x008B },
  1422. { "guilsinglright", 0x009B },
  1423. { "h", 0x0068 },
  1424. { "hyphen", 0x002D },
  1425. { "i", 0x0069 },
  1426. { "j", 0x006A },
  1427. { "k", 0x006B },
  1428. { "l", 0x006C },
  1429. { "less", 0x003C },
  1430. { "logicalnot", 0x00AC },
  1431. { "m", 0x006D },
  1432. { "mu", 0x00B5 },
  1433. { "n", 0x006E },
  1434. { "nbspace", 0x00A0 },
  1435. { "nine", 0x0039 },
  1436. { "numbersign", 0x0023 },
  1437. { "o", 0x006F },
  1438. { "one", 0x0031 },
  1439. { "p", 0x0070 },
  1440. { "paragraph", 0x00B6 },
  1441. { "parenleft", 0x0028 },
  1442. { "parenright", 0x0029 },
  1443. { "percent", 0x0025 },
  1444. { "period", 0x002E },
  1445. { "periodcentered", 0x00B7 },
  1446. { "perthousand", 0x0089 },
  1447. { "plus", 0x002B },
  1448. { "plusminus", 0x00B1 },
  1449. { "q", 0x0071 },
  1450. { "question", 0x003F },
  1451. { "quotedbl", 0x0022 },
  1452. { "quotedblbase", 0x0084 },
  1453. { "quotedblleft", 0x0093 },
  1454. { "quotedblright", 0x0094 },
  1455. { "quoteleft", 0x0091 },
  1456. { "quoteright", 0x0092 },
  1457. { "quotesinglbase", 0x0082 },
  1458. { "quotesingle", 0x0027 },
  1459. { "r", 0x0072 },
  1460. { "registered", 0x00AE },
  1461. { "s", 0x0073 },
  1462. { "section", 0x00A7 },
  1463. { "semicolon", 0x003B },
  1464. { "seven", 0x0037 },
  1465. { "sfthyphen", 0x00AD },
  1466. { "six", 0x0036 },
  1467. { "slash", 0x002F },
  1468. { "space", 0x0020 },
  1469. { "t", 0x0074 },
  1470. { "three", 0x0033 },
  1471. { "trademark", 0x0099 },
  1472. { "two", 0x0032 },
  1473. { "u", 0x0075 },
  1474. { "underscore", 0x005F },
  1475. { "v", 0x0076 },
  1476. { "w", 0x0077 },
  1477. { "x", 0x0078 },
  1478. { "y", 0x0079 },
  1479. { "z", 0x007A },
  1480. { "zero", 0x0030 },
  1481. }
  1482. },
  1483. //
  1484. // Code page 1252: Win 3.1 US
  1485. //
  1486. { 1252, ANSI_CHARSET, ANSI_GS_NAME, 218,
  1487. {
  1488. { "A", 0x0041 },
  1489. { "AE", 0x00C6 },
  1490. { "Aacute", 0x00C1 },
  1491. { "Acircumflex", 0x00C2 },
  1492. { "Adieresis", 0x00C4 },
  1493. { "Agrave", 0x00C0 },
  1494. { "Aring", 0x00C5 },
  1495. { "Atilde", 0x00C3 },
  1496. { "B", 0x0042 },
  1497. { "C", 0x0043 },
  1498. { "Ccedilla", 0x00C7 },
  1499. { "D", 0x0044 },
  1500. { "E", 0x0045 },
  1501. { "Eacute", 0x00C9 },
  1502. { "Ecircumflex", 0x00CA },
  1503. { "Edieresis", 0x00CB },
  1504. { "Egrave", 0x00C8 },
  1505. { "Eth", 0x00D0 },
  1506. { "Euro", 0x0080 },
  1507. { "F", 0x0046 },
  1508. { "G", 0x0047 },
  1509. { "H", 0x0048 },
  1510. { "I", 0x0049 },
  1511. { "Iacute", 0x00CD },
  1512. { "Icircumflex", 0x00CE },
  1513. { "Idieresis", 0x00CF },
  1514. { "Igrave", 0x00CC },
  1515. { "J", 0x004A },
  1516. { "K", 0x004B },
  1517. { "L", 0x004C },
  1518. { "M", 0x004D },
  1519. { "N", 0x004E },
  1520. { "Ntilde", 0x00D1 },
  1521. { "O", 0x004F },
  1522. { "OE", 0x008C },
  1523. { "Oacute", 0x00D3 },
  1524. { "Ocircumflex", 0x00D4 },
  1525. { "Odieresis", 0x00D6 },
  1526. { "Ograve", 0x00D2 },
  1527. { "Oslash", 0x00D8 },
  1528. { "Otilde", 0x00D5 },
  1529. { "P", 0x0050 },
  1530. { "Q", 0x0051 },
  1531. { "R", 0x0052 },
  1532. { "S", 0x0053 },
  1533. { "Scaron", 0x008A },
  1534. { "T", 0x0054 },
  1535. { "Thorn", 0x00DE },
  1536. { "U", 0x0055 },
  1537. { "Uacute", 0x00DA },
  1538. { "Ucircumflex", 0x00DB },
  1539. { "Udieresis", 0x00DC },
  1540. { "Ugrave", 0x00D9 },
  1541. { "V", 0x0056 },
  1542. { "W", 0x0057 },
  1543. { "X", 0x0058 },
  1544. { "Y", 0x0059 },
  1545. { "Yacute", 0x00DD },
  1546. { "Ydieresis", 0x009F },
  1547. { "Z", 0x005A },
  1548. { "Zcaron", 0x008E },
  1549. { "a", 0x0061 },
  1550. { "aacute", 0x00E1 },
  1551. { "acircumflex", 0x00E2 },
  1552. { "acute", 0x00B4 },
  1553. { "adieresis", 0x00E4 },
  1554. { "ae", 0x00E6 },
  1555. { "agrave", 0x00E0 },
  1556. { "ampersand", 0x0026 },
  1557. { "aring", 0x00E5 },
  1558. { "asciicircum", 0x005E },
  1559. { "asciitilde", 0x007E },
  1560. { "asterisk", 0x002A },
  1561. { "at", 0x0040 },
  1562. { "atilde", 0x00E3 },
  1563. { "b", 0x0062 },
  1564. { "backslash", 0x005C },
  1565. { "bar", 0x007C },
  1566. { "braceleft", 0x007B },
  1567. { "braceright", 0x007D },
  1568. { "bracketleft", 0x005B },
  1569. { "bracketright", 0x005D },
  1570. { "brokenbar", 0x00A6 },
  1571. { "bullet", 0x0095 },
  1572. { "c", 0x0063 },
  1573. { "ccedilla", 0x00E7 },
  1574. { "cedilla", 0x00B8 },
  1575. { "cent", 0x00A2 },
  1576. { "circumflex", 0x0088 },
  1577. { "colon", 0x003A },
  1578. { "comma", 0x002C },
  1579. { "copyright", 0x00A9 },
  1580. { "currency", 0x00A4 },
  1581. { "d", 0x0064 },
  1582. { "dagger", 0x0086 },
  1583. { "daggerdbl", 0x0087 },
  1584. { "degree", 0x00B0 },
  1585. { "dieresis", 0x00A8 },
  1586. { "divide", 0x00F7 },
  1587. { "dollar", 0x0024 },
  1588. { "e", 0x0065 },
  1589. { "eacute", 0x00E9 },
  1590. { "ecircumflex", 0x00EA },
  1591. { "edieresis", 0x00EB },
  1592. { "egrave", 0x00E8 },
  1593. { "eight", 0x0038 },
  1594. { "ellipsis", 0x0085 },
  1595. { "emdash", 0x0097 },
  1596. { "endash", 0x0096 },
  1597. { "equal", 0x003D },
  1598. { "eth", 0x00F0 },
  1599. { "exclam", 0x0021 },
  1600. { "exclamdown", 0x00A1 },
  1601. { "f", 0x0066 },
  1602. { "five", 0x0035 },
  1603. { "florin", 0x0083 },
  1604. { "four", 0x0034 },
  1605. { "g", 0x0067 },
  1606. { "germandbls", 0x00DF },
  1607. { "grave", 0x0060 },
  1608. { "greater", 0x003E },
  1609. { "guillemotleft", 0x00AB },
  1610. { "guillemotright", 0x00BB },
  1611. { "guilsinglleft", 0x008B },
  1612. { "guilsinglright", 0x009B },
  1613. { "h", 0x0068 },
  1614. { "hyphen", 0x002D },
  1615. { "i", 0x0069 },
  1616. { "iacute", 0x00ED },
  1617. { "icircumflex", 0x00EE },
  1618. { "idieresis", 0x00EF },
  1619. { "igrave", 0x00EC },
  1620. { "j", 0x006A },
  1621. { "k", 0x006B },
  1622. { "l", 0x006C },
  1623. { "less", 0x003C },
  1624. { "logicalnot", 0x00AC },
  1625. { "m", 0x006D },
  1626. { "macron", 0x00AF },
  1627. { "mu", 0x00B5 },
  1628. { "multiply", 0x00D7 },
  1629. { "n", 0x006E },
  1630. { "nbspace", 0x00A0 },
  1631. { "nine", 0x0039 },
  1632. { "ntilde", 0x00F1 },
  1633. { "numbersign", 0x0023 },
  1634. { "o", 0x006F },
  1635. { "oacute", 0x00F3 },
  1636. { "ocircumflex", 0x00F4 },
  1637. { "odieresis", 0x00F6 },
  1638. { "oe", 0x009C },
  1639. { "ograve", 0x00F2 },
  1640. { "one", 0x0031 },
  1641. { "onehalf", 0x00BD },
  1642. { "onequarter", 0x00BC },
  1643. { "onesuperior", 0x00B9 },
  1644. { "ordfeminine", 0x00AA },
  1645. { "ordmasculine", 0x00BA },
  1646. { "oslash", 0x00F8 },
  1647. { "otilde", 0x00F5 },
  1648. { "p", 0x0070 },
  1649. { "paragraph", 0x00B6 },
  1650. { "parenleft", 0x0028 },
  1651. { "parenright", 0x0029 },
  1652. { "percent", 0x0025 },
  1653. { "period", 0x002E },
  1654. { "periodcentered", 0x00B7 },
  1655. { "perthousand", 0x0089 },
  1656. { "plus", 0x002B },
  1657. { "plusminus", 0x00B1 },
  1658. { "q", 0x0071 },
  1659. { "question", 0x003F },
  1660. { "questiondown", 0x00BF },
  1661. { "quotedbl", 0x0022 },
  1662. { "quotedblbase", 0x0084 },
  1663. { "quotedblleft", 0x0093 },
  1664. { "quotedblright", 0x0094 },
  1665. { "quoteleft", 0x0091 },
  1666. { "quoteright", 0x0092 },
  1667. { "quotesinglbase", 0x0082 },
  1668. { "quotesingle", 0x0027 },
  1669. { "r", 0x0072 },
  1670. { "registered", 0x00AE },
  1671. { "s", 0x0073 },
  1672. { "scaron", 0x009A },
  1673. { "section", 0x00A7 },
  1674. { "semicolon", 0x003B },
  1675. { "seven", 0x0037 },
  1676. { "sfthyphen", 0x00AD },
  1677. { "six", 0x0036 },
  1678. { "slash", 0x002F },
  1679. { "space", 0x0020 },
  1680. { "sterling", 0x00A3 },
  1681. { "t", 0x0074 },
  1682. { "thorn", 0x00FE },
  1683. { "three", 0x0033 },
  1684. { "threequarters", 0x00BE },
  1685. { "threesuperior", 0x00B3 },
  1686. { "tilde", 0x0098 },
  1687. { "trademark", 0x0099 },
  1688. { "two", 0x0032 },
  1689. { "twosuperior", 0x00B2 },
  1690. { "u", 0x0075 },
  1691. { "uacute", 0x00FA },
  1692. { "ucircumflex", 0x00FB },
  1693. { "udieresis", 0x00FC },
  1694. { "ugrave", 0x00F9 },
  1695. { "underscore", 0x005F },
  1696. { "v", 0x0076 },
  1697. { "w", 0x0077 },
  1698. { "x", 0x0078 },
  1699. { "y", 0x0079 },
  1700. { "yacute", 0x00FD },
  1701. { "ydieresis", 0x00FF },
  1702. { "yen", 0x00A5 },
  1703. { "z", 0x007A },
  1704. { "zcaron", 0x009E },
  1705. { "zero", 0x0030 },
  1706. }
  1707. },
  1708. //
  1709. // Code page 1253: Win 3.1 Greek
  1710. //
  1711. { 1253, GREEK_CHARSET, GREEK_GS_NAME, 207,
  1712. {
  1713. { "A", 0x0041 },
  1714. { "Alpha", 0x00C1 },
  1715. { "Alphatonos", 0x00A2 },
  1716. { "B", 0x0042 },
  1717. { "Beta", 0x00C2 },
  1718. { "C", 0x0043 },
  1719. { "Chi", 0x00D7 },
  1720. { "D", 0x0044 },
  1721. { "Delta", 0x00C4 },
  1722. { "E", 0x0045 },
  1723. { "Epsilon", 0x00C5 },
  1724. { "Epsilontonos", 0x00B8 },
  1725. { "Eta", 0x00C7 },
  1726. { "Etatonos", 0x00B9 },
  1727. { "Euro", 0x0080 },
  1728. { "F", 0x0046 },
  1729. { "G", 0x0047 },
  1730. { "Gamma", 0x00C3 },
  1731. { "H", 0x0048 },
  1732. { "I", 0x0049 },
  1733. { "Iota", 0x00C9 },
  1734. { "Iotadieresis", 0x00DA },
  1735. { "Iotatonos", 0x00BA },
  1736. { "J", 0x004A },
  1737. { "K", 0x004B },
  1738. { "Kappa", 0x00CA },
  1739. { "L", 0x004C },
  1740. { "Lambda", 0x00CB },
  1741. { "M", 0x004D },
  1742. { "Mu", 0x00CC },
  1743. { "N", 0x004E },
  1744. { "Nu", 0x00CD },
  1745. { "O", 0x004F },
  1746. { "Omega", 0x00D9 },
  1747. { "Omegatonos", 0x00BF },
  1748. { "Omicron", 0x00CF },
  1749. { "Omicrontonos", 0x00BC },
  1750. { "P", 0x0050 },
  1751. { "Phi", 0x00D6 },
  1752. { "Pi", 0x00D0 },
  1753. { "Psi", 0x00D8 },
  1754. { "Q", 0x0051 },
  1755. { "R", 0x0052 },
  1756. { "Rho", 0x00D1 },
  1757. { "S", 0x0053 },
  1758. { "Sigma", 0x00D3 },
  1759. { "T", 0x0054 },
  1760. { "Tau", 0x00D4 },
  1761. { "Theta", 0x00C8 },
  1762. { "U", 0x0055 },
  1763. { "Upsilon", 0x00D5 },
  1764. { "Upsilondieresis", 0x00DB },
  1765. { "Upsilontonos", 0x00BE },
  1766. { "V", 0x0056 },
  1767. { "W", 0x0057 },
  1768. { "X", 0x0058 },
  1769. { "Xi", 0x00CE },
  1770. { "Y", 0x0059 },
  1771. { "Z", 0x005A },
  1772. { "Zeta", 0x00C6 },
  1773. { "a", 0x0061 },
  1774. { "afii00208", 0x00AF },
  1775. { "alpha", 0x00E1 },
  1776. { "alphatonos", 0x00DC },
  1777. { "ampersand", 0x0026 },
  1778. { "asciicircum", 0x005E },
  1779. { "asciitilde", 0x007E },
  1780. { "asterisk", 0x002A },
  1781. { "at", 0x0040 },
  1782. { "b", 0x0062 },
  1783. { "backslash", 0x005C },
  1784. { "bar", 0x007C },
  1785. { "beta", 0x00E2 },
  1786. { "braceleft", 0x007B },
  1787. { "braceright", 0x007D },
  1788. { "bracketleft", 0x005B },
  1789. { "bracketright", 0x005D },
  1790. { "brokenbar", 0x00A6 },
  1791. { "bullet", 0x0095 },
  1792. { "c", 0x0063 },
  1793. { "chi", 0x00F7 },
  1794. { "colon", 0x003A },
  1795. { "comma", 0x002C },
  1796. { "copyright", 0x00A9 },
  1797. { "currency", 0x00A4 },
  1798. { "d", 0x0064 },
  1799. { "dagger", 0x0086 },
  1800. { "daggerdbl", 0x0087 },
  1801. { "degree", 0x00B0 },
  1802. { "delta", 0x00E4 },
  1803. { "dieresis", 0x00A8 },
  1804. { "dieresistonos", 0x00A1 },
  1805. { "dollar", 0x0024 },
  1806. { "e", 0x0065 },
  1807. { "eight", 0x0038 },
  1808. { "ellipsis", 0x0085 },
  1809. { "emdash", 0x0097 },
  1810. { "endash", 0x0096 },
  1811. { "epsilon", 0x00E5 },
  1812. { "epsilontonos", 0x00DD },
  1813. { "equal", 0x003D },
  1814. { "eta", 0x00E7 },
  1815. { "etatonos", 0x00DE },
  1816. { "exclam", 0x0021 },
  1817. { "f", 0x0066 },
  1818. { "five", 0x0035 },
  1819. { "florin", 0x0083 },
  1820. { "four", 0x0034 },
  1821. { "g", 0x0067 },
  1822. { "gamma", 0x00E3 },
  1823. { "grave", 0x0060 },
  1824. { "greater", 0x003E },
  1825. { "guillemotleft", 0x00AB },
  1826. { "guillemotright", 0x00BB },
  1827. { "guilsinglleft", 0x008B },
  1828. { "guilsinglright", 0x009B },
  1829. { "h", 0x0068 },
  1830. { "hyphen", 0x002D },
  1831. { "i", 0x0069 },
  1832. { "iota", 0x00E9 },
  1833. { "iotadieresis", 0x00FA },
  1834. { "iotadieresistonos", 0x00C0 },
  1835. { "iotatonos", 0x00DF },
  1836. { "j", 0x006A },
  1837. { "k", 0x006B },
  1838. { "kappa", 0x00EA },
  1839. { "l", 0x006C },
  1840. { "lambda", 0x00EB },
  1841. { "less", 0x003C },
  1842. { "logicalnot", 0x00AC },
  1843. { "m", 0x006D },
  1844. { "mu", 0x00B5 },
  1845. { "mu", 0x00EC },
  1846. { "n", 0x006E },
  1847. { "nbspace", 0x00A0 },
  1848. { "nine", 0x0039 },
  1849. { "nu", 0x00ED },
  1850. { "numbersign", 0x0023 },
  1851. { "o", 0x006F },
  1852. { "omega", 0x00F9 },
  1853. { "omegatonos", 0x00FE },
  1854. { "omicron", 0x00EF },
  1855. { "omicrontonos", 0x00FC },
  1856. { "one", 0x0031 },
  1857. { "onehalf", 0x00BD },
  1858. { "ordfeminine", 0x00AA },
  1859. { "p", 0x0070 },
  1860. { "paragraph", 0x00B6 },
  1861. { "parenleft", 0x0028 },
  1862. { "parenright", 0x0029 },
  1863. { "percent", 0x0025 },
  1864. { "period", 0x002E },
  1865. { "periodcentered", 0x00B7 },
  1866. { "perthousand", 0x0089 },
  1867. { "phi", 0x00F6 },
  1868. { "pi", 0x00F0 },
  1869. { "plus", 0x002B },
  1870. { "plusminus", 0x00B1 },
  1871. { "psi", 0x00F8 },
  1872. { "q", 0x0071 },
  1873. { "question", 0x003F },
  1874. { "quotedbl", 0x0022 },
  1875. { "quotedblbase", 0x0084 },
  1876. { "quotedblleft", 0x0093 },
  1877. { "quotedblright", 0x0094 },
  1878. { "quoteleft", 0x0091 },
  1879. { "quoteright", 0x0092 },
  1880. { "quotesinglbase", 0x0082 },
  1881. { "quotesingle", 0x0027 },
  1882. { "r", 0x0072 },
  1883. { "registered", 0x00AE },
  1884. { "rho", 0x00F1 },
  1885. { "s", 0x0073 },
  1886. { "section", 0x00A7 },
  1887. { "semicolon", 0x003B },
  1888. { "seven", 0x0037 },
  1889. { "sfthyphen", 0x00AD },
  1890. { "sigma", 0x00F3 },
  1891. { "sigma1", 0x00F2 },
  1892. { "six", 0x0036 },
  1893. { "slash", 0x002F },
  1894. { "space", 0x0020 },
  1895. { "sterling", 0x00A3 },
  1896. { "t", 0x0074 },
  1897. { "tau", 0x00F4 },
  1898. { "theta", 0x00E8 },
  1899. { "three", 0x0033 },
  1900. { "threesuperior", 0x00B3 },
  1901. { "tonos", 0x00B4 },
  1902. { "trademark", 0x0099 },
  1903. { "two", 0x0032 },
  1904. { "twosuperior", 0x00B2 },
  1905. { "u", 0x0075 },
  1906. { "underscore", 0x005F },
  1907. { "upsilon", 0x00F5 },
  1908. { "upsilon-dieresistonos", 0x00E0},
  1909. { "upsilondieresis", 0x00FB },
  1910. { "upsilontonos", 0x00FD },
  1911. { "v", 0x0076 },
  1912. { "w", 0x0077 },
  1913. { "x", 0x0078 },
  1914. { "xi", 0x00EE },
  1915. { "y", 0x0079 },
  1916. { "yen", 0x00A5 },
  1917. { "z", 0x007A },
  1918. { "zero", 0x0030 },
  1919. { "zeta", 0x00E6 },
  1920. }
  1921. },
  1922. //
  1923. // Code page 1254: Win 3.1 Turkish
  1924. //
  1925. { 1254, TURKISH_CHARSET, TURKISH_GS_NAME, 216,
  1926. {
  1927. { "A", 0x0041 },
  1928. { "AE", 0x00C6 },
  1929. { "Aacute", 0x00C1 },
  1930. { "Acircumflex", 0x00C2 },
  1931. { "Adieresis", 0x00C4 },
  1932. { "Agrave", 0x00C0 },
  1933. { "Aring", 0x00C5 },
  1934. { "Atilde", 0x00C3 },
  1935. { "B", 0x0042 },
  1936. { "C", 0x0043 },
  1937. { "Ccedilla", 0x00C7 },
  1938. { "D", 0x0044 },
  1939. { "E", 0x0045 },
  1940. { "Eacute", 0x00C9 },
  1941. { "Ecircumflex", 0x00CA },
  1942. { "Edieresis", 0x00CB },
  1943. { "Egrave", 0x00C8 },
  1944. { "Euro", 0x0080 },
  1945. { "F", 0x0046 },
  1946. { "G", 0x0047 },
  1947. { "Gbreve", 0x00D0 },
  1948. { "H", 0x0048 },
  1949. { "I", 0x0049 },
  1950. { "Iacute", 0x00CD },
  1951. { "Icircumflex", 0x00CE },
  1952. { "Idieresis", 0x00CF },
  1953. { "Idotaccent", 0x00DD },
  1954. { "Igrave", 0x00CC },
  1955. { "J", 0x004A },
  1956. { "K", 0x004B },
  1957. { "L", 0x004C },
  1958. { "M", 0x004D },
  1959. { "N", 0x004E },
  1960. { "Ntilde", 0x00D1 },
  1961. { "O", 0x004F },
  1962. { "OE", 0x008C },
  1963. { "Oacute", 0x00D3 },
  1964. { "Ocircumflex", 0x00D4 },
  1965. { "Odieresis", 0x00D6 },
  1966. { "Ograve", 0x00D2 },
  1967. { "Oslash", 0x00D8 },
  1968. { "Otilde", 0x00D5 },
  1969. { "P", 0x0050 },
  1970. { "Q", 0x0051 },
  1971. { "R", 0x0052 },
  1972. { "S", 0x0053 },
  1973. { "Scaron", 0x008A },
  1974. { "Scommaaccent", 0x00DE },
  1975. { "T", 0x0054 },
  1976. { "U", 0x0055 },
  1977. { "Uacute", 0x00DA },
  1978. { "Ucircumflex", 0x00DB },
  1979. { "Udieresis", 0x00DC },
  1980. { "Ugrave", 0x00D9 },
  1981. { "V", 0x0056 },
  1982. { "W", 0x0057 },
  1983. { "X", 0x0058 },
  1984. { "Y", 0x0059 },
  1985. { "Ydieresis", 0x009F },
  1986. { "Z", 0x005A },
  1987. { "a", 0x0061 },
  1988. { "aacute", 0x00E1 },
  1989. { "acircumflex", 0x00E2 },
  1990. { "acute", 0x00B4 },
  1991. { "adieresis", 0x00E4 },
  1992. { "ae", 0x00E6 },
  1993. { "agrave", 0x00E0 },
  1994. { "ampersand", 0x0026 },
  1995. { "aring", 0x00E5 },
  1996. { "asciicircum", 0x005E },
  1997. { "asciitilde", 0x007E },
  1998. { "asterisk", 0x002A },
  1999. { "at", 0x0040 },
  2000. { "atilde", 0x00E3 },
  2001. { "b", 0x0062 },
  2002. { "backslash", 0x005C },
  2003. { "bar", 0x007C },
  2004. { "braceleft", 0x007B },
  2005. { "braceright", 0x007D },
  2006. { "bracketleft", 0x005B },
  2007. { "bracketright", 0x005D },
  2008. { "brokenbar", 0x00A6 },
  2009. { "bullet", 0x0095 },
  2010. { "c", 0x0063 },
  2011. { "ccedilla", 0x00E7 },
  2012. { "cedilla", 0x00B8 },
  2013. { "cent", 0x00A2 },
  2014. { "circumflex", 0x0088 },
  2015. { "colon", 0x003A },
  2016. { "comma", 0x002C },
  2017. { "copyright", 0x00A9 },
  2018. { "currency", 0x00A4 },
  2019. { "d", 0x0064 },
  2020. { "dagger", 0x0086 },
  2021. { "daggerdbl", 0x0087 },
  2022. { "degree", 0x00B0 },
  2023. { "dieresis", 0x00A8 },
  2024. { "divide", 0x00F7 },
  2025. { "dollar", 0x0024 },
  2026. { "dotlessi", 0x00FD },
  2027. { "e", 0x0065 },
  2028. { "eacute", 0x00E9 },
  2029. { "ecircumflex", 0x00EA },
  2030. { "edieresis", 0x00EB },
  2031. { "egrave", 0x00E8 },
  2032. { "eight", 0x0038 },
  2033. { "ellipsis", 0x0085 },
  2034. { "emdash", 0x0097 },
  2035. { "endash", 0x0096 },
  2036. { "equal", 0x003D },
  2037. { "exclam", 0x0021 },
  2038. { "exclamdown", 0x00A1 },
  2039. { "f", 0x0066 },
  2040. { "five", 0x0035 },
  2041. { "florin", 0x0083 },
  2042. { "four", 0x0034 },
  2043. { "g", 0x0067 },
  2044. { "gbreve", 0x00F0 },
  2045. { "germandbls", 0x00DF },
  2046. { "grave", 0x0060 },
  2047. { "greater", 0x003E },
  2048. { "guillemotleft", 0x00AB },
  2049. { "guillemotright", 0x00BB },
  2050. { "guilsinglleft", 0x008B },
  2051. { "guilsinglright", 0x009B },
  2052. { "h", 0x0068 },
  2053. { "hyphen", 0x002D },
  2054. { "i", 0x0069 },
  2055. { "iacute", 0x00ED },
  2056. { "icircumflex", 0x00EE },
  2057. { "idieresis", 0x00EF },
  2058. { "igrave", 0x00EC },
  2059. { "j", 0x006A },
  2060. { "k", 0x006B },
  2061. { "l", 0x006C },
  2062. { "less", 0x003C },
  2063. { "logicalnot", 0x00AC },
  2064. { "m", 0x006D },
  2065. { "macron", 0x00AF },
  2066. { "mu", 0x00B5 },
  2067. { "multiply", 0x00D7 },
  2068. { "n", 0x006E },
  2069. { "nbspace", 0x00A0 },
  2070. { "nine", 0x0039 },
  2071. { "ntilde", 0x00F1 },
  2072. { "numbersign", 0x0023 },
  2073. { "o", 0x006F },
  2074. { "oacute", 0x00F3 },
  2075. { "ocircumflex", 0x00F4 },
  2076. { "odieresis", 0x00F6 },
  2077. { "oe", 0x009C },
  2078. { "ograve", 0x00F2 },
  2079. { "one", 0x0031 },
  2080. { "onehalf", 0x00BD },
  2081. { "onequarter", 0x00BC },
  2082. { "onesuperior", 0x00B9 },
  2083. { "ordfeminine", 0x00AA },
  2084. { "ordmasculine", 0x00BA },
  2085. { "oslash", 0x00F8 },
  2086. { "otilde", 0x00F5 },
  2087. { "p", 0x0070 },
  2088. { "paragraph", 0x00B6 },
  2089. { "parenleft", 0x0028 },
  2090. { "parenright", 0x0029 },
  2091. { "percent", 0x0025 },
  2092. { "period", 0x002E },
  2093. { "periodcentered", 0x00B7 },
  2094. { "perthousand", 0x0089 },
  2095. { "plus", 0x002B },
  2096. { "plusminus", 0x00B1 },
  2097. { "q", 0x0071 },
  2098. { "question", 0x003F },
  2099. { "questiondown", 0x00BF },
  2100. { "quotedbl", 0x0022 },
  2101. { "quotedblbase", 0x0084 },
  2102. { "quotedblleft", 0x0093 },
  2103. { "quotedblright", 0x0094 },
  2104. { "quoteleft", 0x0091 },
  2105. { "quoteright", 0x0092 },
  2106. { "quotesinglbase", 0x0082 },
  2107. { "quotesingle", 0x0027 },
  2108. { "r", 0x0072 },
  2109. { "registered", 0x00AE },
  2110. { "s", 0x0073 },
  2111. { "scaron", 0x009A },
  2112. { "scommaaccent", 0x00FE },
  2113. { "section", 0x00A7 },
  2114. { "semicolon", 0x003B },
  2115. { "seven", 0x0037 },
  2116. { "sfthyphen", 0x00AD },
  2117. { "six", 0x0036 },
  2118. { "slash", 0x002F },
  2119. { "space", 0x0020 },
  2120. { "sterling", 0x00A3 },
  2121. { "t", 0x0074 },
  2122. { "three", 0x0033 },
  2123. { "threequarters", 0x00BE },
  2124. { "threesuperior", 0x00B3 },
  2125. { "tilde", 0x0098 },
  2126. { "trademark", 0x0099 },
  2127. { "two", 0x0032 },
  2128. { "twosuperior", 0x00B2 },
  2129. { "u", 0x0075 },
  2130. { "uacute", 0x00FA },
  2131. { "ucircumflex", 0x00FB },
  2132. { "udieresis", 0x00FC },
  2133. { "ugrave", 0x00F9 },
  2134. { "underscore", 0x005F },
  2135. { "v", 0x0076 },
  2136. { "w", 0x0077 },
  2137. { "x", 0x0078 },
  2138. { "y", 0x0079 },
  2139. { "ydieresis", 0x00FF },
  2140. { "yen", 0x00A5 },
  2141. { "z", 0x007A },
  2142. { "zero", 0x0030 },
  2143. }
  2144. },
  2145. //
  2146. // Code page 1255: Hebrew
  2147. //
  2148. { 1255, HEBREW_CHARSET, HEBREW_GS_NAME, 223,
  2149. {
  2150. { ".notdef", 0x0081 },
  2151. { ".notdef", 0x008A },
  2152. { ".notdef", 0x008C },
  2153. { ".notdef", 0x008D },
  2154. { ".notdef", 0x008E },
  2155. { ".notdef", 0x008F },
  2156. { ".notdef", 0x0090 },
  2157. { ".notdef", 0x009A },
  2158. { ".notdef", 0x009C },
  2159. { ".notdef", 0x009D },
  2160. { ".notdef", 0x009E },
  2161. { ".notdef", 0x009F },
  2162. { ".notdef", 0x00A1 },
  2163. { ".notdef", 0x00AA },
  2164. { ".notdef", 0x00B8 },
  2165. { ".notdef", 0x00BA },
  2166. { ".notdef", 0x00BF },
  2167. { ".notdef", 0x00CA },
  2168. { ".notdef", 0x00D7 },
  2169. { ".notdef", 0x00D8 },
  2170. { ".notdef", 0x00D9 },
  2171. { ".notdef", 0x00DA },
  2172. { ".notdef", 0x00DB },
  2173. { ".notdef", 0x00DC },
  2174. { ".notdef", 0x00DD },
  2175. { ".notdef", 0x00DE },
  2176. { ".notdef", 0x00DF },
  2177. { ".notdef", 0x00FB },
  2178. { ".notdef", 0x00FC },
  2179. { ".notdef", 0x00FF },
  2180. { "A", 0x0041 },
  2181. { "B", 0x0042 },
  2182. { "C", 0x0043 },
  2183. { "D", 0x0044 },
  2184. { "E", 0x0045 },
  2185. { "Euro", 0x0080 },
  2186. { "F", 0x0046 },
  2187. { "G", 0x0047 },
  2188. { "H", 0x0048 },
  2189. { "I", 0x0049 },
  2190. { "J", 0x004A },
  2191. { "K", 0x004B },
  2192. { "L", 0x004C },
  2193. { "M", 0x004D },
  2194. { "N", 0x004E },
  2195. { "O", 0x004F },
  2196. { "P", 0x0050 },
  2197. { "Q", 0x0051 },
  2198. { "R", 0x0052 },
  2199. { "S", 0x0053 },
  2200. { "T", 0x0054 },
  2201. { "U", 0x0055 },
  2202. { "V", 0x0056 },
  2203. { "W", 0x0057 },
  2204. { "X", 0x0058 },
  2205. { "Y", 0x0059 },
  2206. { "Z", 0x005A },
  2207. { "a", 0x0061 },
  2208. { "acute", 0x00B4 },
  2209. { "afii299", 0x00FD },
  2210. { "afii300", 0x00FE },
  2211. { "afii57636", 0x00A4 },
  2212. { "afii57645", 0x00CE },
  2213. { "afii57658", 0x00D3 },
  2214. { "afii57664", 0x00E0 },
  2215. { "afii57665", 0x00E1 },
  2216. { "afii57666", 0x00E2 },
  2217. { "afii57667", 0x00E3 },
  2218. { "afii57668", 0x00E4 },
  2219. { "afii57669", 0x00E5 },
  2220. { "afii57670", 0x00E6 },
  2221. { "afii57671", 0x00E7 },
  2222. { "afii57672", 0x00E8 },
  2223. { "afii57673", 0x00E9 },
  2224. { "afii57674", 0x00EA },
  2225. { "afii57675", 0x00EB },
  2226. { "afii57676", 0x00EC },
  2227. { "afii57677", 0x00ED },
  2228. { "afii57678", 0x00EE },
  2229. { "afii57679", 0x00EF },
  2230. { "afii57680", 0x00F0 },
  2231. { "afii57681", 0x00F1 },
  2232. { "afii57682", 0x00F2 },
  2233. { "afii57683", 0x00F3 },
  2234. { "afii57684", 0x00F4 },
  2235. { "afii57685", 0x00F5 },
  2236. { "afii57686", 0x00F6 },
  2237. { "afii57687", 0x00F7 },
  2238. { "afii57688", 0x00F8 },
  2239. { "afii57689", 0x00F9 },
  2240. { "afii57690", 0x00FA },
  2241. { "afii57716", 0x00D4 },
  2242. { "afii57717", 0x00D5 },
  2243. { "afii57718", 0x00D6 },
  2244. { "afii57793", 0x00C4 },
  2245. { "afii57794", 0x00C5 },
  2246. { "afii57795", 0x00C6 },
  2247. { "afii57796", 0x00CB },
  2248. { "afii57797", 0x00C8 },
  2249. { "afii57798", 0x00C7 },
  2250. { "afii57799", 0x00C0 },
  2251. { "afii57800", 0x00C2 },
  2252. { "afii57801", 0x00C1 },
  2253. { "afii57802", 0x00C3 },
  2254. { "afii57803", 0x00D2 },
  2255. { "afii57804", 0x00D1 },
  2256. { "afii57806", 0x00C9 },
  2257. { "afii57807", 0x00CC },
  2258. { "afii57839", 0x00CD },
  2259. { "afii57841", 0x00CF },
  2260. { "afii57842", 0x00D0 },
  2261. { "ampersand", 0x0026 },
  2262. { "asciicircum", 0x005E },
  2263. { "asciitilde", 0x007E },
  2264. { "asterisk", 0x002A },
  2265. { "at", 0x0040 },
  2266. { "b", 0x0062 },
  2267. { "backslash", 0x005C },
  2268. { "bar", 0x007C },
  2269. { "braceleft", 0x007B },
  2270. { "braceright", 0x007D },
  2271. { "bracketleft", 0x005B },
  2272. { "bracketright", 0x005D },
  2273. { "brokenbar", 0x00A6 },
  2274. { "bullet", 0x0095 },
  2275. { "c", 0x0063 },
  2276. { "cent", 0x00A2 },
  2277. { "circumflex", 0x0088 },
  2278. { "colon", 0x003A },
  2279. { "comma", 0x002C },
  2280. { "copyright", 0x00A9 },
  2281. { "d", 0x0064 },
  2282. { "dagger", 0x0086 },
  2283. { "daggerdbl", 0x0087 },
  2284. { "degree", 0x00B0 },
  2285. { "dieresis", 0x00A8 },
  2286. { "dollar", 0x0024 },
  2287. { "e", 0x0065 },
  2288. { "eight", 0x0038 },
  2289. { "ellipsis", 0x0085 },
  2290. { "emdash", 0x0097 },
  2291. { "endash", 0x0096 },
  2292. { "equal", 0x003D },
  2293. { "exclam", 0x0021 },
  2294. { "f", 0x0066 },
  2295. { "five", 0x0035 },
  2296. { "florin", 0x0083 },
  2297. { "four", 0x0034 },
  2298. { "g", 0x0067 },
  2299. { "grave", 0x0060 },
  2300. { "greater", 0x003E },
  2301. { "guillemotleft", 0x00AB },
  2302. { "guillemotright", 0x00BB },
  2303. { "guilsinglleft", 0x008B },
  2304. { "guilsinglright", 0x009B },
  2305. { "h", 0x0068 },
  2306. { "hyphen", 0x002D },
  2307. { "i", 0x0069 },
  2308. { "j", 0x006A },
  2309. { "k", 0x006B },
  2310. { "l", 0x006C },
  2311. { "less", 0x003C },
  2312. { "logicalnot", 0x00AC },
  2313. { "m", 0x006D },
  2314. { "macron", 0x00AF },
  2315. { "mu", 0x00B5 },
  2316. { "n", 0x006E },
  2317. { "nbspace", 0x00A0 },
  2318. { "nine", 0x0039 },
  2319. { "numbersign", 0x0023 },
  2320. { "o", 0x006F },
  2321. { "one", 0x0031 },
  2322. { "onehalf", 0x00BD },
  2323. { "onequarter", 0x00BC },
  2324. { "onesuperior", 0x00B9 },
  2325. { "p", 0x0070 },
  2326. { "paragraph", 0x00B6 },
  2327. { "parenleft", 0x0028 },
  2328. { "parenright", 0x0029 },
  2329. { "percent", 0x0025 },
  2330. { "period", 0x002E },
  2331. { "periodcentered", 0x00B7 },
  2332. { "perthousand", 0x0089 },
  2333. { "plus", 0x002B },
  2334. { "plusminus", 0x00B1 },
  2335. { "q", 0x0071 },
  2336. { "question", 0x003F },
  2337. { "quotedbl", 0x0022 },
  2338. { "quotedblbase", 0x0084 },
  2339. { "quotedblleft", 0x0093 },
  2340. { "quotedblright", 0x0094 },
  2341. { "quoteleft", 0x0091 },
  2342. { "quoteright", 0x0092 },
  2343. { "quotesinglbase", 0x0082 },
  2344. { "quotesingle", 0x0027 },
  2345. { "r", 0x0072 },
  2346. { "registered", 0x00AE },
  2347. { "s", 0x0073 },
  2348. { "section", 0x00A7 },
  2349. { "semicolon", 0x003B },
  2350. { "seven", 0x0037 },
  2351. { "sfthyphen", 0x00AD },
  2352. { "six", 0x0036 },
  2353. { "slash", 0x002F },
  2354. { "space", 0x0020 },
  2355. { "sterling", 0x00A3 },
  2356. { "t", 0x0074 },
  2357. { "three", 0x0033 },
  2358. { "threequarters", 0x00BE },
  2359. { "threesuperior", 0x00B3 },
  2360. { "tilde", 0x0098 },
  2361. { "trademark", 0x0099 },
  2362. { "two", 0x0032 },
  2363. { "twosuperior", 0x00B2 },
  2364. { "u", 0x0075 },
  2365. { "underscore", 0x005F },
  2366. { "v", 0x0076 },
  2367. { "w", 0x0077 },
  2368. { "x", 0x0078 },
  2369. { "y", 0x0079 },
  2370. { "yen", 0x00A5 },
  2371. { "z", 0x007A },
  2372. { "zero", 0x0030 }
  2373. }
  2374. },
  2375. //
  2376. // Code page 1256: Arabic
  2377. //
  2378. { 1256, ARABIC_CHARSET, ARABIC_GS_NAME, 215,
  2379. {
  2380. { "A", 0x0041 },
  2381. { "B", 0x0042 },
  2382. { "C", 0x0043 },
  2383. { "D", 0x0044 },
  2384. { "E", 0x0045 },
  2385. { "Euro", 0x0080 },
  2386. { "F", 0x0046 },
  2387. { "G", 0x0047 },
  2388. { "H", 0x0048 },
  2389. { "I", 0x0049 },
  2390. { "J", 0x004A },
  2391. { "K", 0x004B },
  2392. { "L", 0x004C },
  2393. { "M", 0x004D },
  2394. { "N", 0x004E },
  2395. { "O", 0x004F },
  2396. { "OE", 0x008C },
  2397. { "P", 0x0050 },
  2398. { "Q", 0x0051 },
  2399. { "R", 0x0052 },
  2400. { "S", 0x0053 },
  2401. { "T", 0x0054 },
  2402. { "U", 0x0055 },
  2403. { "V", 0x0056 },
  2404. { "W", 0x0057 },
  2405. { "X", 0x0058 },
  2406. { "Y", 0x0059 },
  2407. { "Z", 0x005A },
  2408. { "a", 0x0061 },
  2409. { "acircumflex", 0x00E2 },
  2410. { "acute", 0x00B4 },
  2411. { "afii299", 0x00FD },
  2412. { "afii300", 0x00FE },
  2413. { "afii301", 0x009E },
  2414. { "afii57388", 0x00A1 },
  2415. { "afii57403", 0x00BA },
  2416. { "afii57407", 0x00BF },
  2417. { "afii57409", 0x00C1 },
  2418. { "afii57410", 0x00C2 },
  2419. { "afii57411", 0x00C3 },
  2420. { "afii57412", 0x00C4 },
  2421. { "afii57413", 0x00C5 },
  2422. { "afii57414", 0x00C6 },
  2423. { "afii57415", 0x00C7 },
  2424. { "afii57416", 0x00C8 },
  2425. { "afii57417", 0x00C9 },
  2426. { "afii57418", 0x00CA },
  2427. { "afii57419", 0x00CB },
  2428. { "afii57420", 0x00CC },
  2429. { "afii57421", 0x00CD },
  2430. { "afii57422", 0x00CE },
  2431. { "afii57423", 0x00CF },
  2432. { "afii57424", 0x00D0 },
  2433. { "afii57425", 0x00D1 },
  2434. { "afii57426", 0x00D2 },
  2435. { "afii57427", 0x00D3 },
  2436. { "afii57428", 0x00D4 },
  2437. { "afii57429", 0x00D5 },
  2438. { "afii57430", 0x00D6 },
  2439. { "afii57431", 0x00D8 },
  2440. { "afii57432", 0x00D9 },
  2441. { "afii57433", 0x00DA },
  2442. { "afii57434", 0x00DB },
  2443. { "afii57440", 0x00DC },
  2444. { "afii57441", 0x00DD },
  2445. { "afii57442", 0x00DE },
  2446. { "afii57443", 0x00DF },
  2447. { "afii57444", 0x00E1 },
  2448. { "afii57445", 0x00E3 },
  2449. { "afii57446", 0x00E4 },
  2450. { "afii57448", 0x00E6 },
  2451. { "afii57449", 0x00EC },
  2452. { "afii57450", 0x00ED },
  2453. { "afii57451", 0x00F0 },
  2454. { "afii57452", 0x00F1 },
  2455. { "afii57453", 0x00F2 },
  2456. { "afii57454", 0x00F3 },
  2457. { "afii57455", 0x00F5 },
  2458. { "afii57456", 0x00F6 },
  2459. { "afii57457", 0x00F8 },
  2460. { "afii57458", 0x00FA },
  2461. { "afii57470", 0x00E5 },
  2462. { "afii57506", 0x0081 },
  2463. { "afii57507", 0x008D },
  2464. { "afii57508", 0x008E },
  2465. { "afii57509", 0x0090 },
  2466. { "afii61664", 0x009D },
  2467. { "agrave", 0x00E0 },
  2468. { "ampersand", 0x0026 },
  2469. { "asciicircum", 0x005E },
  2470. { "asciitilde", 0x007E },
  2471. { "asterisk", 0x002A },
  2472. { "at", 0x0040 },
  2473. { "b", 0x0062 },
  2474. { "backslash", 0x005C },
  2475. { "bar", 0x007C },
  2476. { "braceleft", 0x007B },
  2477. { "braceright", 0x007D },
  2478. { "bracketleft", 0x005B },
  2479. { "bracketright", 0x005D },
  2480. { "brokenbar", 0x00A6 },
  2481. { "bullet", 0x0095 },
  2482. { "c", 0x0063 },
  2483. { "ccedilla", 0x00E7 },
  2484. { "cedilla", 0x00B8 },
  2485. { "cent", 0x00A2 },
  2486. { "circumflex", 0x0088 },
  2487. { "colon", 0x003A },
  2488. { "comma", 0x002C },
  2489. { "copyright", 0x00A9 },
  2490. { "currency", 0x00A4 },
  2491. { "d", 0x0064 },
  2492. { "dagger", 0x0086 },
  2493. { "daggerdbl", 0x0087 },
  2494. { "degree", 0x00B0 },
  2495. { "dieresis", 0x00A8 },
  2496. { "divide", 0x00F7 },
  2497. { "dollar", 0x0024 },
  2498. { "e", 0x0065 },
  2499. { "eacute", 0x00E9 },
  2500. { "ecircumflex", 0x00EA },
  2501. { "edieresis", 0x00EB },
  2502. { "egrave", 0x00E8 },
  2503. { "eight", 0x0038 },
  2504. { "ellipsis", 0x0085 },
  2505. { "emdash", 0x0097 },
  2506. { "endash", 0x0096 },
  2507. { "equal", 0x003D },
  2508. { "exclam", 0x0021 },
  2509. { "f", 0x0066 },
  2510. { "five", 0x0035 },
  2511. { "florin", 0x0083 },
  2512. { "four", 0x0034 },
  2513. { "g", 0x0067 },
  2514. { "grave", 0x0060 },
  2515. { "greater", 0x003E },
  2516. { "guillemotleft", 0x00AB },
  2517. { "guillemotright", 0x00BB },
  2518. { "guilsinglleft", 0x008B },
  2519. { "guilsinglright", 0x009B },
  2520. { "h", 0x0068 },
  2521. { "hyphen", 0x002D },
  2522. { "i", 0x0069 },
  2523. { "icircumflex", 0x00EE },
  2524. { "idieresis", 0x00EF },
  2525. { "j", 0x006A },
  2526. { "k", 0x006B },
  2527. { "l", 0x006C },
  2528. { "less", 0x003C },
  2529. { "logicalnot", 0x00AC },
  2530. { "m", 0x006D },
  2531. { "macron", 0x00AF },
  2532. { "mu", 0x00B5 },
  2533. { "multiply", 0x00D7 },
  2534. { "n", 0x006E },
  2535. { "nbspace", 0x00A0 },
  2536. { "nine", 0x0039 },
  2537. { "numbersign", 0x0023 },
  2538. { "o", 0x006F },
  2539. { "ocircumflex", 0x00F4 },
  2540. { "oe", 0x009C },
  2541. { "one", 0x0031 },
  2542. { "onehalf", 0x00BD },
  2543. { "onequarter", 0x00BC },
  2544. { "onesuperior", 0x00B9 },
  2545. { "p", 0x0070 },
  2546. { "paragraph", 0x00B6 },
  2547. { "parenleft", 0x0028 },
  2548. { "parenright", 0x0029 },
  2549. { "percent", 0x0025 },
  2550. { "period", 0x002E },
  2551. { "periodcentered", 0x00B7 },
  2552. { "perthousand", 0x0089 },
  2553. { "plus", 0x002B },
  2554. { "plusminus", 0x00B1 },
  2555. { "q", 0x0071 },
  2556. { "question", 0x003F },
  2557. { "quotedbl", 0x0022 },
  2558. { "quotedblbase", 0x0084 },
  2559. { "quotedblleft", 0x0093 },
  2560. { "quotedblright", 0x0094 },
  2561. { "quoteleft", 0x0091 },
  2562. { "quoteright", 0x0092 },
  2563. { "quotesinglbase", 0x0082 },
  2564. { "quotesingle", 0x0027 },
  2565. { "r", 0x0072 },
  2566. { "registered", 0x00AE },
  2567. { "s", 0x0073 },
  2568. { "section", 0x00A7 },
  2569. { "semicolon", 0x003B },
  2570. { "seven", 0x0037 },
  2571. { "sfthyphen", 0x00AD },
  2572. { "six", 0x0036 },
  2573. { "slash", 0x002F },
  2574. { "space", 0x0020 },
  2575. { "sterling", 0x00A3 },
  2576. { "t", 0x0074 },
  2577. { "three", 0x0033 },
  2578. { "threequarters", 0x00BE },
  2579. { "threesuperior", 0x00B3 },
  2580. { "trademark", 0x0099 },
  2581. { "two", 0x0032 },
  2582. { "twosuperior", 0x00B2 },
  2583. { "u", 0x0075 },
  2584. { "ucircumflex", 0x00FB },
  2585. { "udieresis", 0x00FC },
  2586. { "ugrave", 0x00F9 },
  2587. { "underscore", 0x005F },
  2588. { "v", 0x0076 },
  2589. { "w", 0x0077 },
  2590. { "x", 0x0078 },
  2591. { "y", 0x0079 },
  2592. { "yen", 0x00A5 },
  2593. { "z", 0x007A },
  2594. { "zero", 0x0030 }
  2595. }
  2596. },
  2597. //
  2598. // Code page 1257: Baltic
  2599. //
  2600. { 1257, BALTIC_CHARSET, BALTIC_GS_NAME, 223,
  2601. {
  2602. { ".notdef", 0x0081 },
  2603. { ".notdef", 0x0083 },
  2604. { ".notdef", 0x0088 },
  2605. { ".notdef", 0x008A },
  2606. { ".notdef", 0x008C },
  2607. { ".notdef", 0x008D },
  2608. { ".notdef", 0x008E },
  2609. { ".notdef", 0x008F },
  2610. { ".notdef", 0x0090 },
  2611. { ".notdef", 0x0098 },
  2612. { ".notdef", 0x009A },
  2613. { ".notdef", 0x009C },
  2614. { ".notdef", 0x009D },
  2615. { ".notdef", 0x009E },
  2616. { ".notdef", 0x009F },
  2617. { ".notdef", 0x00A5 },
  2618. { "A", 0x0041 },
  2619. { "AE", 0x00AF },
  2620. { "Adieresis", 0x00C4 },
  2621. { "Amacron", 0x00C2 },
  2622. { "Aogonek", 0x00C0 },
  2623. { "Aring", 0x00C5 },
  2624. { "B", 0x0042 },
  2625. { "C", 0x0043 },
  2626. { "Cacute", 0x00C3 },
  2627. { "Ccaron", 0x00C8 },
  2628. { "D", 0x0044 },
  2629. { "E", 0x0045 },
  2630. { "Eacute", 0x00C9 },
  2631. { "Edot", 0x00CB },
  2632. { "Emacron", 0x00C7 },
  2633. { "Eogonek", 0x00C6 },
  2634. { "Euro", 0x0080 },
  2635. { "F", 0x0046 },
  2636. { "G", 0x0047 },
  2637. { "Gcedilla", 0x00CC },
  2638. { "H", 0x0048 },
  2639. { "I", 0x0049 },
  2640. { "Imacron", 0x00CE },
  2641. { "Iogonek", 0x00C1 },
  2642. { "J", 0x004A },
  2643. { "K", 0x004B },
  2644. { "Kcedilla", 0x00CD },
  2645. { "L", 0x004C },
  2646. { "Lcedilla", 0x00CF },
  2647. { "Lslash", 0x00D9 },
  2648. { "M", 0x004D },
  2649. { "N", 0x004E },
  2650. { "Nacute", 0x00D1 },
  2651. { "Ncedilla", 0x00D2 },
  2652. { "O", 0x004F },
  2653. { "Oacute", 0x00D3 },
  2654. { "Odieresis", 0x00D6 },
  2655. { "Omacron", 0x00D4 },
  2656. { "Otilde", 0x00D5 },
  2657. { "P", 0x0050 },
  2658. { "Q", 0x0051 },
  2659. { "R", 0x0052 },
  2660. { "Rcedilla", 0x00AA },
  2661. { "S", 0x0053 },
  2662. { "Sacute", 0x00DA },
  2663. { "Scaron", 0x00D0 },
  2664. { "T", 0x0054 },
  2665. { "U", 0x0055 },
  2666. { "Udieresis", 0x00DC },
  2667. { "Umacron", 0x00DB },
  2668. { "Uogonek", 0x00D8 },
  2669. { "V", 0x0056 },
  2670. { "W", 0x0057 },
  2671. { "X", 0x0058 },
  2672. { "Y", 0x0059 },
  2673. { "Z", 0x005A },
  2674. { "Zacute", 0x00CA },
  2675. { "Zcaron", 0x00DE },
  2676. { "Zdotaccent", 0x00DD },
  2677. { "a", 0x0061 },
  2678. { "acute", 0x00B4 },
  2679. { "adieresis", 0x00E4 },
  2680. { "ae", 0x00BF },
  2681. { "amacron", 0x00E2 },
  2682. { "ampersand", 0x0026 },
  2683. { "aogonek", 0x00E0 },
  2684. { "aring", 0x00E5 },
  2685. { "asciicircum", 0x005E },
  2686. { "asciitilde", 0x007E },
  2687. { "asterisk", 0x002A },
  2688. { "at", 0x0040 },
  2689. { "b", 0x0062 },
  2690. { "backslash", 0x005C },
  2691. { "bar", 0x007C },
  2692. { "braceleft", 0x007B },
  2693. { "braceright", 0x007D },
  2694. { "bracketleft", 0x005B },
  2695. { "bracketright", 0x005D },
  2696. { "breve", 0x00A2 },
  2697. { "brokenbar", 0x00A6 },
  2698. { "bullet", 0x0095 },
  2699. { "c", 0x0063 },
  2700. { "cacute", 0x00E3 },
  2701. { "caron", 0x00A1 },
  2702. { "ccaron", 0x00E8 },
  2703. { "cedilla", 0x00B8 },
  2704. { "colon", 0x003A },
  2705. { "comma", 0x002C },
  2706. { "copyright", 0x00A9 },
  2707. { "currency", 0x00A4 },
  2708. { "d", 0x0064 },
  2709. { "dagger", 0x0086 },
  2710. { "daggerdbl", 0x0087 },
  2711. { "dieresis", 0x00A8 },
  2712. { "divide", 0x00F7 },
  2713. { "dollar", 0x0024 },
  2714. { "dotaccent", 0x00FF },
  2715. { "e", 0x0065 },
  2716. { "eacute", 0x00E9 },
  2717. { "edot", 0x00EB },
  2718. { "eight", 0x0038 },
  2719. { "ellipsis", 0x0085 },
  2720. { "emacron", 0x00E7 },
  2721. { "emdash", 0x0097 },
  2722. { "endash", 0x0096 },
  2723. { "eogonek", 0x00E6 },
  2724. { "equal", 0x003D },
  2725. { "exclam", 0x0021 },
  2726. { "f", 0x0066 },
  2727. { "five", 0x0035 },
  2728. { "four", 0x0034 },
  2729. { "g", 0x0067 },
  2730. { "gcedilla", 0x00EC },
  2731. { "germandbls", 0x00DF },
  2732. { "grave", 0x0060 },
  2733. { "greater", 0x003E },
  2734. { "guillemotleft", 0x00AB },
  2735. { "guillemotright", 0x00BB },
  2736. { "guilsinglleft", 0x008B },
  2737. { "guilsinglright", 0x009B },
  2738. { "h", 0x0068 },
  2739. { "hyphen", 0x002D },
  2740. { "i", 0x0069 },
  2741. { "imacron", 0x00EE },
  2742. { "iogonek", 0x00E1 },
  2743. { "j", 0x006A },
  2744. { "k", 0x006B },
  2745. { "kcedilla", 0x00ED },
  2746. { "l", 0x006C },
  2747. { "lcedilla", 0x00EF },
  2748. { "less", 0x003C },
  2749. { "logicalnot", 0x00AC },
  2750. { "lslash", 0x00F9 },
  2751. { "m", 0x006D },
  2752. { "mu", 0x00B5 },
  2753. { "multiply", 0x00D7 },
  2754. { "n", 0x006E },
  2755. { "nacute", 0x00F1 },
  2756. { "nbspace", 0x00A0 },
  2757. { "ncedilla", 0x00F2 },
  2758. { "nine", 0x0039 },
  2759. { "numbersign", 0x0023 },
  2760. { "o", 0x006F },
  2761. { "oacute", 0x00F3 },
  2762. { "odieresis", 0x00F6 },
  2763. { "ogonek", 0x00B2 },
  2764. { "omacron", 0x00F4 },
  2765. { "one", 0x0031 },
  2766. { "onehalf", 0x00BD },
  2767. { "onequarter", 0x00BC },
  2768. { "onesuperior", 0x00B9 },
  2769. { "otilde", 0x00F5 },
  2770. { "p", 0x0070 },
  2771. { "paragraph", 0x00B6 },
  2772. { "parenleft", 0x0028 },
  2773. { "parenright", 0x0029 },
  2774. { "percent", 0x0025 },
  2775. { "period", 0x002E },
  2776. { "periodcentered", 0x00B7 },
  2777. { "perthousand", 0x0089 },
  2778. { "plus", 0x002B },
  2779. { "plusminus", 0x00B1 },
  2780. { "q", 0x0071 },
  2781. { "question", 0x003F },
  2782. { "quotedbl", 0x0022 },
  2783. { "quotedblbase", 0x0084 },
  2784. { "quotedblleft", 0x0093 },
  2785. { "quotedblright", 0x0094 },
  2786. { "quoteleft", 0x0091 },
  2787. { "quoteright", 0x0092 },
  2788. { "quotesinglbase", 0x0082 },
  2789. { "quotesingle", 0x0027 },
  2790. { "r", 0x0072 },
  2791. { "rcedilla", 0x00BA },
  2792. { "registered", 0x00AE },
  2793. { "ring", 0x00B0 },
  2794. { "s", 0x0073 },
  2795. { "sacute", 0x00FA },
  2796. { "scaron", 0x00F0 },
  2797. { "section", 0x00A7 },
  2798. { "semicolon", 0x003B },
  2799. { "seven", 0x0037 },
  2800. { "sfthyphen", 0x00AD },
  2801. { "six", 0x0036 },
  2802. { "slash", 0x002F },
  2803. { "space", 0x0020 },
  2804. { "sterling", 0x00A3 },
  2805. { "t", 0x0074 },
  2806. { "three", 0x0033 },
  2807. { "threequarters", 0x00BE },
  2808. { "threesuperior", 0x00B3 },
  2809. { "trademark", 0x0099 },
  2810. { "two", 0x0032 },
  2811. { "u", 0x0075 },
  2812. { "udieresis", 0x00FC },
  2813. { "umacron", 0x00FB },
  2814. { "underscore", 0x005F },
  2815. { "uogonek", 0x00F8 },
  2816. { "v", 0x0076 },
  2817. { "w", 0x0077 },
  2818. { "x", 0x0078 },
  2819. { "y", 0x0079 },
  2820. { "z", 0x007A },
  2821. { "zacute", 0x00EA },
  2822. { "zcaron", 0x00FE },
  2823. { "zdotaccent", 0x00FD },
  2824. { "zero", 0x0030 }
  2825. }
  2826. },
  2827. //
  2828. // (jWinCharset) Placeholder for Composite Charset: CS_ANSI_RUS
  2829. //
  2830. // We can remove following two charsets since the driver does not support them.
  2831. // However, we should change some other structures such as aStdCPList and
  2832. // CHARSETSUPPORT. To make it safer, I would like to keep them unchanged.
  2833. // Jack Jia, 4/5/00
  2834. //
  2835. //
  2836. { 0, RUSSIAN_CHARSET, ANSI_CYR_GS_NAME, 0,
  2837. {
  2838. {"", }
  2839. }
  2840. },
  2841. //
  2842. // (jWinCharset) Placeholder for Composite Charset: CS_ANSI_RUS_EE_BAL_TURK
  2843. //
  2844. { 0, RUSSIAN_CHARSET, ANSI_CYR_EE_BAL_TURK_GS_NAME, 0,
  2845. {
  2846. {"", }
  2847. }
  2848. },
  2849. //
  2850. // Code page 950: Chinese Big5
  2851. //
  2852. { 950, CHINESEBIG5_CHARSET, CHN_BIG5_GS_NAME, 0,
  2853. {
  2854. {"", }
  2855. }
  2856. },
  2857. //
  2858. // Code page 936: Simplified Chinese
  2859. //
  2860. { 936, GB2312_CHARSET, CHN_SMPL_GBK_GS_NAME, 0,
  2861. {
  2862. {"", }
  2863. }
  2864. },
  2865. //
  2866. // Code page 932: Japanese (Shift JIS)
  2867. //
  2868. { 932, SHIFTJIS_CHARSET, SHIFTJIS_GS_NAME, 0,
  2869. {
  2870. {"", }
  2871. }
  2872. },
  2873. //
  2874. // Code page 932: Japanese (Shift JIS) 90msp
  2875. //
  2876. { 932, SHIFTJIS_CHARSET, SHIFTJIS_P_GS_NAME, 0,
  2877. {
  2878. {"", }
  2879. }
  2880. },
  2881. //
  2882. // Code page 932: Japanese (Shift JIS 1983 character collection)
  2883. //
  2884. { 932, SHIFTJIS_CHARSET, SHIFTJIS_83PV_GS_NAME, 0,
  2885. {
  2886. {"", }
  2887. }
  2888. },
  2889. //
  2890. // Code page 949: Korean (Hangeul)
  2891. //
  2892. { 949, HANGEUL_CHARSET, KSCMS_UHC_GS_NAME, 0,
  2893. {
  2894. {"", }
  2895. }
  2896. },
  2897. //
  2898. // Code page 949: Korean (Hangeul) HW
  2899. //
  2900. { 949, HANGEUL_CHARSET, KSCMS_UHC_HW_GS_NAME, 0,
  2901. {
  2902. {"", }
  2903. }
  2904. },
  2905. //
  2906. // Code page 1361: Korean (Johab)
  2907. //
  2908. { 1361, JOHAB_CHARSET, KSC_JOHAB_GS_NAME, 0,
  2909. {
  2910. {"", }
  2911. }
  2912. }
  2913. };
  2914. //
  2915. // Mapping from family names to Windows FF_ family types.
  2916. //
  2917. #define NUM_FONT_FAM_TYPES 5
  2918. KEY FontFamilies[NUM_FONT_FAM_TYPES] =
  2919. {
  2920. { "Roman", FF_ROMAN },
  2921. { "Swiss", FF_SWISS },
  2922. { "Decorative", FF_DECORATIVE },
  2923. { "Modern", FF_MODERN },
  2924. { "Script", FF_SCRIPT }
  2925. };
  2926. TBL FamilyKeyTbl = { NUM_FONT_FAM_TYPES, FontFamilies };
  2927. //
  2928. // Mapping from pitch names to Windows FF_ ptich types.
  2929. //
  2930. #define NUM_FONT_PITCH_TYPES 3
  2931. KEY FontPitch[NUM_FONT_PITCH_TYPES] =
  2932. {
  2933. { "Default", DEFAULT_PITCH },
  2934. { "Fixed", FIXED_PITCH },
  2935. { "Proportional", VARIABLE_PITCH}
  2936. };
  2937. TBL PitchKeyTbl = { NUM_FONT_PITCH_TYPES, FontPitch };
  2938. //
  2939. // Mapping from AFM Weight Token values to Windows Weight values.
  2940. //
  2941. #define NUM_FONT_WEIGHT_TYPES 16
  2942. KEY WeightKeys[NUM_FONT_WEIGHT_TYPES] =
  2943. {
  2944. { "Light", FW_NORMAL },
  2945. { "LightCondensed", FW_NORMAL },
  2946. { "Book", FW_NORMAL },
  2947. { "Medium", FW_NORMAL },
  2948. { "Roman", FW_NORMAL },
  2949. { "Regular", FW_NORMAL },
  2950. { "Italic", FW_NORMAL },
  2951. { "MediumCondensed", FW_NORMAL },
  2952. { "Bold", FW_BOLD },
  2953. { "BoldItalic", FW_BOLD },
  2954. { "Demi", FW_BOLD },
  2955. { "Poster", FW_BOLD },
  2956. { "Heavy", FW_BOLD },
  2957. { "Black", FW_BOLD },
  2958. { "BlackCondensed", FW_BOLD },
  2959. { "BoldCondensed", FW_BOLD }
  2960. };
  2961. #define NUM_FONT_WEIGHT_TYPES_CJK 27
  2962. KEY WeightKeysCJK[NUM_FONT_WEIGHT_TYPES_CJK] =
  2963. {
  2964. { "Light", FW_NORMAL },
  2965. { "LightCondensed", FW_NORMAL },
  2966. { "Book", FW_NORMAL },
  2967. { "Roman", FW_NORMAL },
  2968. { "Regular", FW_NORMAL },
  2969. { "Italic", FW_NORMAL },
  2970. { "Medium", FW_NORMAL },
  2971. { "MediumCondensed", FW_NORMAL },
  2972. { "Bold", FW_BOLD },
  2973. { "BoldItalic", FW_BOLD },
  2974. { "Demi", FW_BOLD },
  2975. { "Poster", FW_BOLD },
  2976. { "Heavy", FW_BOLD },
  2977. { "Black", FW_BOLD },
  2978. { "BlackCondensed", FW_BOLD },
  2979. { "BoldCondensed", FW_BOLD },
  2980. { "W3", FW_NORMAL },
  2981. { "W3H", FW_NORMAL },
  2982. { "W4", FW_NORMAL },
  2983. { "W5", FW_NORMAL },
  2984. { "W7", FW_BOLD },
  2985. { "W9", FW_BOLD },
  2986. { "regular", FW_NORMAL },
  2987. { "heavy", FW_BOLD },
  2988. { "Ultra", FW_BOLD },
  2989. { "MA31", FW_BOLD },
  2990. { "MB31", FW_BOLD },
  2991. };
  2992. TBL WeightKeyTbl[] =
  2993. {
  2994. NUM_FONT_WEIGHT_TYPES, WeightKeys,
  2995. NUM_FONT_WEIGHT_TYPES_CJK, WeightKeysCJK
  2996. };
  2997. //
  2998. // Alias Family Tables.
  2999. // The first element is the base name and is the one displayed on the font menu
  3000. // name list. The rest of the elements are its alias names.
  3001. // (Basicall these alias names are of PostScript only. All the TrueType names
  3002. // which were originally there are disabled to fix Adobe bug #259664.)
  3003. //
  3004. // Make sure to have the same lists in pfmtontm.c too.
  3005. //
  3006. char *TimesAlias[] =
  3007. {"Times",
  3008. "Times Roman",
  3009. "TimesRoman",
  3010. "Tms Rmn",
  3011. "TmsRmn",
  3012. "Varitimes",
  3013. "Dutch",
  3014. "TimesNewRomanPS",
  3015. // "Times New Roman",
  3016. NULL
  3017. };
  3018. char *HelveticaAlias[] =
  3019. {"Helvetica",
  3020. "Helv",
  3021. "Swiss",
  3022. // "Arial",
  3023. NULL
  3024. };
  3025. /*
  3026. char *CourierAlias[] =
  3027. {"Courier",
  3028. "Courier New",
  3029. NULL
  3030. };
  3031. */
  3032. char *HelveticaNarrowAlias[] =
  3033. {"Helvetica-Narrow",
  3034. "Helvetica Narrow",
  3035. // "Arial-Narrow",
  3036. // "Arial Narrow",
  3037. NULL
  3038. };
  3039. char *PalatinoAlias[] =
  3040. {"Palatino",
  3041. "Zapf Calligraphic",
  3042. "ZapfCalligraphic",
  3043. // "Bookman Antiqua",
  3044. // "Book Antiqua",
  3045. NULL
  3046. };
  3047. char *BookmanAlias[] =
  3048. {"Bookman",
  3049. "ITC Bookman",
  3050. // "Bookman Old Style",
  3051. NULL
  3052. };
  3053. char *NewCenturySBAlias[] =
  3054. {"NewCenturySchlbk",
  3055. "New Century Schoolbook",
  3056. "NewCenturySchoolBook",
  3057. // "Century Schoolbook",
  3058. // "CenturySchoolBook",
  3059. NULL
  3060. };
  3061. char *AvantGardeAlias[] =
  3062. {"AvantGarde",
  3063. "ITC Avant Garde Gothic",
  3064. "ITC Avant Garde",
  3065. // "Century Gothic",
  3066. NULL
  3067. };
  3068. char *ZapfChanceryAlias[] =
  3069. {"ZapfChancery",
  3070. "ITC Zapf Chancery",
  3071. // "Monotype Corsiva",
  3072. NULL
  3073. };
  3074. char *ZapfDingbatsAlias[] =
  3075. {"ZapfDingbats",
  3076. "Zapf Dingbats",
  3077. "ITC Zapf Dingbats",
  3078. // "Monotype Sorts",
  3079. NULL
  3080. };
  3081. //
  3082. // Table of char width biases for average width computation. In order
  3083. // from 'a' to 'z'.
  3084. //
  3085. ULONG CharWidthBias[] =
  3086. {
  3087. // a b c d e f g h i j k l m n
  3088. 64, 14, 27, 35, 100, 20, 14, 42, 63, 3, 6, 35, 20, 56,
  3089. // o p q r s t u v w x y z
  3090. 56, 17, 4, 49, 56, 71, 31, 10, 18, 3, 18, 2
  3091. };
  3092. //
  3093. //
  3094. // Mapping from Adobe CJK Char Collection names to Win Codepage values.
  3095. //
  3096. #define NUM_CJK_CHAR_COLS 8
  3097. KEY CjkCollections[NUM_CJK_CHAR_COLS] =
  3098. {
  3099. { "Adobe-CNS1-0", CS_CHINESEBIG5 },
  3100. { "Adobe-GB1-1", CS_GB2312 },
  3101. { "Adobe-Japan1-0", CS_SHIFTJIS83 },
  3102. { "Adobe-Japan1-1", CS_SHIFTJIS },
  3103. { "Adobe-Japan1-2", CS_SHIFTJIS },
  3104. { "Adobe-Japan2-0", CS_SHIFTJIS },
  3105. { "Adobe-Korea1-0", CS_HANGEUL },
  3106. { "Adobe-Korea1-1", CS_HANGEUL }
  3107. };
  3108. TBL CjkColTbl = { NUM_CJK_CHAR_COLS, CjkCollections };
  3109. PWCHAR CjkFnameTbl[8][CMAPS_PER_COL] =
  3110. {
  3111. // Caution: each line has to match a CS in the CHSETSUPPORT enum list.
  3112. { L"ucs2bg5.map", L"ucs2bg5.map", L"Unicnsh.PS", L"Unicnsv.PS" }, // CS_CHINESEBIG5
  3113. { L"ucs2gbk.map", L"ucs2gbk.map", L"Unigbh.PS", L"Unigbv.PS" }, // CS_GB2312
  3114. { L"ucs2msj.map", L"ucs2msj.map", L"Unijish.PS", L"Unijisv.PS" }, // CS_SHIFTJIS
  3115. { L"ucs2msj.map", L"ucs2msj.map", L"Unijish.PS", L"Unijisv.PS" }, // CS_SHIFTJISP
  3116. { L"ucs283h.map", L"ucs283v.map", L"Uni83h.PS", L"Uni83v.PS" }, // CS_SHIFTJIS83
  3117. { L"ucs2uhc.map", L"ucs2uhc.map", L"UniKSh.PS", L"UniKSv.PS" }, // CS_HANGEUL
  3118. { L"ucs2uhc.map", L"ucs2uhc.map", L"UniKSh.PS", L"UniKSv.PS" }, // CS_HANGEULHW
  3119. { L"ucs2jhb.map", L"ucs2jhb.map", L"UniKSh.PS", L"UniKSv.PS" }, // CS_JOHAB
  3120. };
  3121. //
  3122. // PropCjkGsNames: a list of GlyphSet names of which font is proportional.
  3123. // (The last element has to be NULL.)
  3124. //
  3125. char* PropCjkGsNames[] =
  3126. {
  3127. KSCMS_UHC_GS_NAME,
  3128. SHIFTJIS_P_GS_HNAME,
  3129. SHIFTJIS_P_GS_VNAME,
  3130. KSCMS_UHC_GS_HNAME,
  3131. KSCMS_UHC_GS_VNAME,
  3132. NULL
  3133. };