ucaps.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392
  1. #ifndef UCAPS_H
  2. #define UCAPS_H
  3. //satan invented unicode?
  4. #define CAPS_LEN 666
  5. static const int caps_table[CAPS_LEN][2]={
  6. {0x0061,0x0041},
  7. {0x0062,0x0042},
  8. {0x0063,0x0043},
  9. {0x0064,0x0044},
  10. {0x0065,0x0045},
  11. {0x0066,0x0046},
  12. {0x0067,0x0047},
  13. {0x0068,0x0048},
  14. {0x0069,0x0049},
  15. {0x006A,0x004A},
  16. {0x006B,0x004B},
  17. {0x006C,0x004C},
  18. {0x006D,0x004D},
  19. {0x006E,0x004E},
  20. {0x006F,0x004F},
  21. {0x0070,0x0050},
  22. {0x0071,0x0051},
  23. {0x0072,0x0052},
  24. {0x0073,0x0053},
  25. {0x0074,0x0054},
  26. {0x0075,0x0055},
  27. {0x0076,0x0056},
  28. {0x0077,0x0057},
  29. {0x0078,0x0058},
  30. {0x0079,0x0059},
  31. {0x007A,0x005A},
  32. {0x00E0,0x00C0},
  33. {0x00E1,0x00C1},
  34. {0x00E2,0x00C2},
  35. {0x00E3,0x00C3},
  36. {0x00E4,0x00C4},
  37. {0x00E5,0x00C5},
  38. {0x00E6,0x00C6},
  39. {0x00E7,0x00C7},
  40. {0x00E8,0x00C8},
  41. {0x00E9,0x00C9},
  42. {0x00EA,0x00CA},
  43. {0x00EB,0x00CB},
  44. {0x00EC,0x00CC},
  45. {0x00ED,0x00CD},
  46. {0x00EE,0x00CE},
  47. {0x00EF,0x00CF},
  48. {0x00F0,0x00D0},
  49. {0x00F1,0x00D1},
  50. {0x00F2,0x00D2},
  51. {0x00F3,0x00D3},
  52. {0x00F4,0x00D4},
  53. {0x00F5,0x00D5},
  54. {0x00F6,0x00D6},
  55. {0x00F8,0x00D8},
  56. {0x00F9,0x00D9},
  57. {0x00FA,0x00DA},
  58. {0x00FB,0x00DB},
  59. {0x00FC,0x00DC},
  60. {0x00FD,0x00DD},
  61. {0x00FE,0x00DE},
  62. {0x00FF,0x0178},
  63. {0x0101,0x0100},
  64. {0x0103,0x0102},
  65. {0x0105,0x0104},
  66. {0x0107,0x0106},
  67. {0x0109,0x0108},
  68. {0x010B,0x010A},
  69. {0x010D,0x010C},
  70. {0x010F,0x010E},
  71. {0x0111,0x0110},
  72. {0x0113,0x0112},
  73. {0x0115,0x0114},
  74. {0x0117,0x0116},
  75. {0x0119,0x0118},
  76. {0x011B,0x011A},
  77. {0x011D,0x011C},
  78. {0x011F,0x011E},
  79. {0x0121,0x0120},
  80. {0x0123,0x0122},
  81. {0x0125,0x0124},
  82. {0x0127,0x0126},
  83. {0x0129,0x0128},
  84. {0x012B,0x012A},
  85. {0x012D,0x012C},
  86. {0x012F,0x012E},
  87. {0x0131,0x0049},
  88. {0x0133,0x0132},
  89. {0x0135,0x0134},
  90. {0x0137,0x0136},
  91. {0x013A,0x0139},
  92. {0x013C,0x013B},
  93. {0x013E,0x013D},
  94. {0x0140,0x013F},
  95. {0x0142,0x0141},
  96. {0x0144,0x0143},
  97. {0x0146,0x0145},
  98. {0x0148,0x0147},
  99. {0x014B,0x014A},
  100. {0x014D,0x014C},
  101. {0x014F,0x014E},
  102. {0x0151,0x0150},
  103. {0x0153,0x0152},
  104. {0x0155,0x0154},
  105. {0x0157,0x0156},
  106. {0x0159,0x0158},
  107. {0x015B,0x015A},
  108. {0x015D,0x015C},
  109. {0x015F,0x015E},
  110. {0x0161,0x0160},
  111. {0x0163,0x0162},
  112. {0x0165,0x0164},
  113. {0x0167,0x0166},
  114. {0x0169,0x0168},
  115. {0x016B,0x016A},
  116. {0x016D,0x016C},
  117. {0x016F,0x016E},
  118. {0x0171,0x0170},
  119. {0x0173,0x0172},
  120. {0x0175,0x0174},
  121. {0x0177,0x0176},
  122. {0x017A,0x0179},
  123. {0x017C,0x017B},
  124. {0x017E,0x017D},
  125. {0x0183,0x0182},
  126. {0x0185,0x0184},
  127. {0x0188,0x0187},
  128. {0x018C,0x018B},
  129. {0x0192,0x0191},
  130. {0x0199,0x0198},
  131. {0x01A1,0x01A0},
  132. {0x01A3,0x01A2},
  133. {0x01A5,0x01A4},
  134. {0x01A8,0x01A7},
  135. {0x01AD,0x01AC},
  136. {0x01B0,0x01AF},
  137. {0x01B4,0x01B3},
  138. {0x01B6,0x01B5},
  139. {0x01B9,0x01B8},
  140. {0x01BD,0x01BC},
  141. {0x01C6,0x01C4},
  142. {0x01C9,0x01C7},
  143. {0x01CC,0x01CA},
  144. {0x01CE,0x01CD},
  145. {0x01D0,0x01CF},
  146. {0x01D2,0x01D1},
  147. {0x01D4,0x01D3},
  148. {0x01D6,0x01D5},
  149. {0x01D8,0x01D7},
  150. {0x01DA,0x01D9},
  151. {0x01DC,0x01DB},
  152. {0x01DF,0x01DE},
  153. {0x01E1,0x01E0},
  154. {0x01E3,0x01E2},
  155. {0x01E5,0x01E4},
  156. {0x01E7,0x01E6},
  157. {0x01E9,0x01E8},
  158. {0x01EB,0x01EA},
  159. {0x01ED,0x01EC},
  160. {0x01EF,0x01EE},
  161. {0x01F3,0x01F1},
  162. {0x01F5,0x01F4},
  163. {0x01FB,0x01FA},
  164. {0x01FD,0x01FC},
  165. {0x01FF,0x01FE},
  166. {0x0201,0x0200},
  167. {0x0203,0x0202},
  168. {0x0205,0x0204},
  169. {0x0207,0x0206},
  170. {0x0209,0x0208},
  171. {0x020B,0x020A},
  172. {0x020D,0x020C},
  173. {0x020F,0x020E},
  174. {0x0211,0x0210},
  175. {0x0213,0x0212},
  176. {0x0215,0x0214},
  177. {0x0217,0x0216},
  178. {0x0253,0x0181},
  179. {0x0254,0x0186},
  180. {0x0257,0x018A},
  181. {0x0258,0x018E},
  182. {0x0259,0x018F},
  183. {0x025B,0x0190},
  184. {0x0260,0x0193},
  185. {0x0263,0x0194},
  186. {0x0268,0x0197},
  187. {0x0269,0x0196},
  188. {0x026F,0x019C},
  189. {0x0272,0x019D},
  190. {0x0275,0x019F},
  191. {0x0283,0x01A9},
  192. {0x0288,0x01AE},
  193. {0x028A,0x01B1},
  194. {0x028B,0x01B2},
  195. {0x0292,0x01B7},
  196. {0x03AC,0x0386},
  197. {0x03AD,0x0388},
  198. {0x03AE,0x0389},
  199. {0x03AF,0x038A},
  200. {0x03B1,0x0391},
  201. {0x03B2,0x0392},
  202. {0x03B3,0x0393},
  203. {0x03B4,0x0394},
  204. {0x03B5,0x0395},
  205. {0x03B6,0x0396},
  206. {0x03B7,0x0397},
  207. {0x03B8,0x0398},
  208. {0x03B9,0x0399},
  209. {0x03BA,0x039A},
  210. {0x03BB,0x039B},
  211. {0x03BC,0x039C},
  212. {0x03BD,0x039D},
  213. {0x03BE,0x039E},
  214. {0x03BF,0x039F},
  215. {0x03C0,0x03A0},
  216. {0x03C1,0x03A1},
  217. {0x03C3,0x03A3},
  218. {0x03C4,0x03A4},
  219. {0x03C5,0x03A5},
  220. {0x03C6,0x03A6},
  221. {0x03C7,0x03A7},
  222. {0x03C8,0x03A8},
  223. {0x03C9,0x03A9},
  224. {0x03CA,0x03AA},
  225. {0x03CB,0x03AB},
  226. {0x03CC,0x038C},
  227. {0x03CD,0x038E},
  228. {0x03CE,0x038F},
  229. {0x03E3,0x03E2},
  230. {0x03E5,0x03E4},
  231. {0x03E7,0x03E6},
  232. {0x03E9,0x03E8},
  233. {0x03EB,0x03EA},
  234. {0x03ED,0x03EC},
  235. {0x03EF,0x03EE},
  236. {0x0430,0x0410},
  237. {0x0431,0x0411},
  238. {0x0432,0x0412},
  239. {0x0433,0x0413},
  240. {0x0434,0x0414},
  241. {0x0435,0x0415},
  242. {0x0436,0x0416},
  243. {0x0437,0x0417},
  244. {0x0438,0x0418},
  245. {0x0439,0x0419},
  246. {0x043A,0x041A},
  247. {0x043B,0x041B},
  248. {0x043C,0x041C},
  249. {0x043D,0x041D},
  250. {0x043E,0x041E},
  251. {0x043F,0x041F},
  252. {0x0440,0x0420},
  253. {0x0441,0x0421},
  254. {0x0442,0x0422},
  255. {0x0443,0x0423},
  256. {0x0444,0x0424},
  257. {0x0445,0x0425},
  258. {0x0446,0x0426},
  259. {0x0447,0x0427},
  260. {0x0448,0x0428},
  261. {0x0449,0x0429},
  262. {0x044A,0x042A},
  263. {0x044B,0x042B},
  264. {0x044C,0x042C},
  265. {0x044D,0x042D},
  266. {0x044E,0x042E},
  267. {0x044F,0x042F},
  268. {0x0451,0x0401},
  269. {0x0452,0x0402},
  270. {0x0453,0x0403},
  271. {0x0454,0x0404},
  272. {0x0455,0x0405},
  273. {0x0456,0x0406},
  274. {0x0457,0x0407},
  275. {0x0458,0x0408},
  276. {0x0459,0x0409},
  277. {0x045A,0x040A},
  278. {0x045B,0x040B},
  279. {0x045C,0x040C},
  280. {0x045E,0x040E},
  281. {0x045F,0x040F},
  282. {0x0461,0x0460},
  283. {0x0463,0x0462},
  284. {0x0465,0x0464},
  285. {0x0467,0x0466},
  286. {0x0469,0x0468},
  287. {0x046B,0x046A},
  288. {0x046D,0x046C},
  289. {0x046F,0x046E},
  290. {0x0471,0x0470},
  291. {0x0473,0x0472},
  292. {0x0475,0x0474},
  293. {0x0477,0x0476},
  294. {0x0479,0x0478},
  295. {0x047B,0x047A},
  296. {0x047D,0x047C},
  297. {0x047F,0x047E},
  298. {0x0481,0x0480},
  299. {0x0491,0x0490},
  300. {0x0493,0x0492},
  301. {0x0495,0x0494},
  302. {0x0497,0x0496},
  303. {0x0499,0x0498},
  304. {0x049B,0x049A},
  305. {0x049D,0x049C},
  306. {0x049F,0x049E},
  307. {0x04A1,0x04A0},
  308. {0x04A3,0x04A2},
  309. {0x04A5,0x04A4},
  310. {0x04A7,0x04A6},
  311. {0x04A9,0x04A8},
  312. {0x04AB,0x04AA},
  313. {0x04AD,0x04AC},
  314. {0x04AF,0x04AE},
  315. {0x04B1,0x04B0},
  316. {0x04B3,0x04B2},
  317. {0x04B5,0x04B4},
  318. {0x04B7,0x04B6},
  319. {0x04B9,0x04B8},
  320. {0x04BB,0x04BA},
  321. {0x04BD,0x04BC},
  322. {0x04BF,0x04BE},
  323. {0x04C2,0x04C1},
  324. {0x04C4,0x04C3},
  325. {0x04C8,0x04C7},
  326. {0x04CC,0x04CB},
  327. {0x04D1,0x04D0},
  328. {0x04D3,0x04D2},
  329. {0x04D5,0x04D4},
  330. {0x04D7,0x04D6},
  331. {0x04D9,0x04D8},
  332. {0x04DB,0x04DA},
  333. {0x04DD,0x04DC},
  334. {0x04DF,0x04DE},
  335. {0x04E1,0x04E0},
  336. {0x04E3,0x04E2},
  337. {0x04E5,0x04E4},
  338. {0x04E7,0x04E6},
  339. {0x04E9,0x04E8},
  340. {0x04EB,0x04EA},
  341. {0x04EF,0x04EE},
  342. {0x04F1,0x04F0},
  343. {0x04F3,0x04F2},
  344. {0x04F5,0x04F4},
  345. {0x04F9,0x04F8},
  346. {0x0561,0x0531},
  347. {0x0562,0x0532},
  348. {0x0563,0x0533},
  349. {0x0564,0x0534},
  350. {0x0565,0x0535},
  351. {0x0566,0x0536},
  352. {0x0567,0x0537},
  353. {0x0568,0x0538},
  354. {0x0569,0x0539},
  355. {0x056A,0x053A},
  356. {0x056B,0x053B},
  357. {0x056C,0x053C},
  358. {0x056D,0x053D},
  359. {0x056E,0x053E},
  360. {0x056F,0x053F},
  361. {0x0570,0x0540},
  362. {0x0571,0x0541},
  363. {0x0572,0x0542},
  364. {0x0573,0x0543},
  365. {0x0574,0x0544},
  366. {0x0575,0x0545},
  367. {0x0576,0x0546},
  368. {0x0577,0x0547},
  369. {0x0578,0x0548},
  370. {0x0579,0x0549},
  371. {0x057A,0x054A},
  372. {0x057B,0x054B},
  373. {0x057C,0x054C},
  374. {0x057D,0x054D},
  375. {0x057E,0x054E},
  376. {0x057F,0x054F},
  377. {0x0580,0x0550},
  378. {0x0581,0x0551},
  379. {0x0582,0x0552},
  380. {0x0583,0x0553},
  381. {0x0584,0x0554},
  382. {0x0585,0x0555},
  383. {0x0586,0x0556},
  384. {0x10D0,0x10A0},
  385. {0x10D1,0x10A1},
  386. {0x10D2,0x10A2},
  387. {0x10D3,0x10A3},
  388. {0x10D4,0x10A4},
  389. {0x10D5,0x10A5},
  390. {0x10D6,0x10A6},
  391. {0x10D7,0x10A7},
  392. {0x10D8,0x10A8},
  393. {0x10D9,0x10A9},
  394. {0x10DA,0x10AA},
  395. {0x10DB,0x10AB},
  396. {0x10DC,0x10AC},
  397. {0x10DD,0x10AD},
  398. {0x10DE,0x10AE},
  399. {0x10DF,0x10AF},
  400. {0x10E0,0x10B0},
  401. {0x10E1,0x10B1},
  402. {0x10E2,0x10B2},
  403. {0x10E3,0x10B3},
  404. {0x10E4,0x10B4},
  405. {0x10E5,0x10B5},
  406. {0x10E6,0x10B6},
  407. {0x10E7,0x10B7},
  408. {0x10E8,0x10B8},
  409. {0x10E9,0x10B9},
  410. {0x10EA,0x10BA},
  411. {0x10EB,0x10BB},
  412. {0x10EC,0x10BC},
  413. {0x10ED,0x10BD},
  414. {0x10EE,0x10BE},
  415. {0x10EF,0x10BF},
  416. {0x10F0,0x10C0},
  417. {0x10F1,0x10C1},
  418. {0x10F2,0x10C2},
  419. {0x10F3,0x10C3},
  420. {0x10F4,0x10C4},
  421. {0x10F5,0x10C5},
  422. {0x1E01,0x1E00},
  423. {0x1E03,0x1E02},
  424. {0x1E05,0x1E04},
  425. {0x1E07,0x1E06},
  426. {0x1E09,0x1E08},
  427. {0x1E0B,0x1E0A},
  428. {0x1E0D,0x1E0C},
  429. {0x1E0F,0x1E0E},
  430. {0x1E11,0x1E10},
  431. {0x1E13,0x1E12},
  432. {0x1E15,0x1E14},
  433. {0x1E17,0x1E16},
  434. {0x1E19,0x1E18},
  435. {0x1E1B,0x1E1A},
  436. {0x1E1D,0x1E1C},
  437. {0x1E1F,0x1E1E},
  438. {0x1E21,0x1E20},
  439. {0x1E23,0x1E22},
  440. {0x1E25,0x1E24},
  441. {0x1E27,0x1E26},
  442. {0x1E29,0x1E28},
  443. {0x1E2B,0x1E2A},
  444. {0x1E2D,0x1E2C},
  445. {0x1E2F,0x1E2E},
  446. {0x1E31,0x1E30},
  447. {0x1E33,0x1E32},
  448. {0x1E35,0x1E34},
  449. {0x1E37,0x1E36},
  450. {0x1E39,0x1E38},
  451. {0x1E3B,0x1E3A},
  452. {0x1E3D,0x1E3C},
  453. {0x1E3F,0x1E3E},
  454. {0x1E41,0x1E40},
  455. {0x1E43,0x1E42},
  456. {0x1E45,0x1E44},
  457. {0x1E47,0x1E46},
  458. {0x1E49,0x1E48},
  459. {0x1E4B,0x1E4A},
  460. {0x1E4D,0x1E4C},
  461. {0x1E4F,0x1E4E},
  462. {0x1E51,0x1E50},
  463. {0x1E53,0x1E52},
  464. {0x1E55,0x1E54},
  465. {0x1E57,0x1E56},
  466. {0x1E59,0x1E58},
  467. {0x1E5B,0x1E5A},
  468. {0x1E5D,0x1E5C},
  469. {0x1E5F,0x1E5E},
  470. {0x1E61,0x1E60},
  471. {0x1E63,0x1E62},
  472. {0x1E65,0x1E64},
  473. {0x1E67,0x1E66},
  474. {0x1E69,0x1E68},
  475. {0x1E6B,0x1E6A},
  476. {0x1E6D,0x1E6C},
  477. {0x1E6F,0x1E6E},
  478. {0x1E71,0x1E70},
  479. {0x1E73,0x1E72},
  480. {0x1E75,0x1E74},
  481. {0x1E77,0x1E76},
  482. {0x1E79,0x1E78},
  483. {0x1E7B,0x1E7A},
  484. {0x1E7D,0x1E7C},
  485. {0x1E7F,0x1E7E},
  486. {0x1E81,0x1E80},
  487. {0x1E83,0x1E82},
  488. {0x1E85,0x1E84},
  489. {0x1E87,0x1E86},
  490. {0x1E89,0x1E88},
  491. {0x1E8B,0x1E8A},
  492. {0x1E8D,0x1E8C},
  493. {0x1E8F,0x1E8E},
  494. {0x1E91,0x1E90},
  495. {0x1E93,0x1E92},
  496. {0x1E95,0x1E94},
  497. {0x1EA1,0x1EA0},
  498. {0x1EA3,0x1EA2},
  499. {0x1EA5,0x1EA4},
  500. {0x1EA7,0x1EA6},
  501. {0x1EA9,0x1EA8},
  502. {0x1EAB,0x1EAA},
  503. {0x1EAD,0x1EAC},
  504. {0x1EAF,0x1EAE},
  505. {0x1EB1,0x1EB0},
  506. {0x1EB3,0x1EB2},
  507. {0x1EB5,0x1EB4},
  508. {0x1EB7,0x1EB6},
  509. {0x1EB9,0x1EB8},
  510. {0x1EBB,0x1EBA},
  511. {0x1EBD,0x1EBC},
  512. {0x1EBF,0x1EBE},
  513. {0x1EC1,0x1EC0},
  514. {0x1EC3,0x1EC2},
  515. {0x1EC5,0x1EC4},
  516. {0x1EC7,0x1EC6},
  517. {0x1EC9,0x1EC8},
  518. {0x1ECB,0x1ECA},
  519. {0x1ECD,0x1ECC},
  520. {0x1ECF,0x1ECE},
  521. {0x1ED1,0x1ED0},
  522. {0x1ED3,0x1ED2},
  523. {0x1ED5,0x1ED4},
  524. {0x1ED7,0x1ED6},
  525. {0x1ED9,0x1ED8},
  526. {0x1EDB,0x1EDA},
  527. {0x1EDD,0x1EDC},
  528. {0x1EDF,0x1EDE},
  529. {0x1EE1,0x1EE0},
  530. {0x1EE3,0x1EE2},
  531. {0x1EE5,0x1EE4},
  532. {0x1EE7,0x1EE6},
  533. {0x1EE9,0x1EE8},
  534. {0x1EEB,0x1EEA},
  535. {0x1EED,0x1EEC},
  536. {0x1EEF,0x1EEE},
  537. {0x1EF1,0x1EF0},
  538. {0x1EF3,0x1EF2},
  539. {0x1EF5,0x1EF4},
  540. {0x1EF7,0x1EF6},
  541. {0x1EF9,0x1EF8},
  542. {0x1F00,0x1F08},
  543. {0x1F01,0x1F09},
  544. {0x1F02,0x1F0A},
  545. {0x1F03,0x1F0B},
  546. {0x1F04,0x1F0C},
  547. {0x1F05,0x1F0D},
  548. {0x1F06,0x1F0E},
  549. {0x1F07,0x1F0F},
  550. {0x1F10,0x1F18},
  551. {0x1F11,0x1F19},
  552. {0x1F12,0x1F1A},
  553. {0x1F13,0x1F1B},
  554. {0x1F14,0x1F1C},
  555. {0x1F15,0x1F1D},
  556. {0x1F20,0x1F28},
  557. {0x1F21,0x1F29},
  558. {0x1F22,0x1F2A},
  559. {0x1F23,0x1F2B},
  560. {0x1F24,0x1F2C},
  561. {0x1F25,0x1F2D},
  562. {0x1F26,0x1F2E},
  563. {0x1F27,0x1F2F},
  564. {0x1F30,0x1F38},
  565. {0x1F31,0x1F39},
  566. {0x1F32,0x1F3A},
  567. {0x1F33,0x1F3B},
  568. {0x1F34,0x1F3C},
  569. {0x1F35,0x1F3D},
  570. {0x1F36,0x1F3E},
  571. {0x1F37,0x1F3F},
  572. {0x1F40,0x1F48},
  573. {0x1F41,0x1F49},
  574. {0x1F42,0x1F4A},
  575. {0x1F43,0x1F4B},
  576. {0x1F44,0x1F4C},
  577. {0x1F45,0x1F4D},
  578. {0x1F51,0x1F59},
  579. {0x1F53,0x1F5B},
  580. {0x1F55,0x1F5D},
  581. {0x1F57,0x1F5F},
  582. {0x1F60,0x1F68},
  583. {0x1F61,0x1F69},
  584. {0x1F62,0x1F6A},
  585. {0x1F63,0x1F6B},
  586. {0x1F64,0x1F6C},
  587. {0x1F65,0x1F6D},
  588. {0x1F66,0x1F6E},
  589. {0x1F67,0x1F6F},
  590. {0x1F80,0x1F88},
  591. {0x1F81,0x1F89},
  592. {0x1F82,0x1F8A},
  593. {0x1F83,0x1F8B},
  594. {0x1F84,0x1F8C},
  595. {0x1F85,0x1F8D},
  596. {0x1F86,0x1F8E},
  597. {0x1F87,0x1F8F},
  598. {0x1F90,0x1F98},
  599. {0x1F91,0x1F99},
  600. {0x1F92,0x1F9A},
  601. {0x1F93,0x1F9B},
  602. {0x1F94,0x1F9C},
  603. {0x1F95,0x1F9D},
  604. {0x1F96,0x1F9E},
  605. {0x1F97,0x1F9F},
  606. {0x1FA0,0x1FA8},
  607. {0x1FA1,0x1FA9},
  608. {0x1FA2,0x1FAA},
  609. {0x1FA3,0x1FAB},
  610. {0x1FA4,0x1FAC},
  611. {0x1FA5,0x1FAD},
  612. {0x1FA6,0x1FAE},
  613. {0x1FA7,0x1FAF},
  614. {0x1FB0,0x1FB8},
  615. {0x1FB1,0x1FB9},
  616. {0x1FD0,0x1FD8},
  617. {0x1FD1,0x1FD9},
  618. {0x1FE0,0x1FE8},
  619. {0x1FE1,0x1FE9},
  620. {0x24D0,0x24B6},
  621. {0x24D1,0x24B7},
  622. {0x24D2,0x24B8},
  623. {0x24D3,0x24B9},
  624. {0x24D4,0x24BA},
  625. {0x24D5,0x24BB},
  626. {0x24D6,0x24BC},
  627. {0x24D7,0x24BD},
  628. {0x24D8,0x24BE},
  629. {0x24D9,0x24BF},
  630. {0x24DA,0x24C0},
  631. {0x24DB,0x24C1},
  632. {0x24DC,0x24C2},
  633. {0x24DD,0x24C3},
  634. {0x24DE,0x24C4},
  635. {0x24DF,0x24C5},
  636. {0x24E0,0x24C6},
  637. {0x24E1,0x24C7},
  638. {0x24E2,0x24C8},
  639. {0x24E3,0x24C9},
  640. {0x24E4,0x24CA},
  641. {0x24E5,0x24CB},
  642. {0x24E6,0x24CC},
  643. {0x24E7,0x24CD},
  644. {0x24E8,0x24CE},
  645. {0x24E9,0x24CF},
  646. {0xFF41,0xFF21},
  647. {0xFF42,0xFF22},
  648. {0xFF43,0xFF23},
  649. {0xFF44,0xFF24},
  650. {0xFF45,0xFF25},
  651. {0xFF46,0xFF26},
  652. {0xFF47,0xFF27},
  653. {0xFF48,0xFF28},
  654. {0xFF49,0xFF29},
  655. {0xFF4A,0xFF2A},
  656. {0xFF4B,0xFF2B},
  657. {0xFF4C,0xFF2C},
  658. {0xFF4D,0xFF2D},
  659. {0xFF4E,0xFF2E},
  660. {0xFF4F,0xFF2F},
  661. {0xFF50,0xFF30},
  662. {0xFF51,0xFF31},
  663. {0xFF52,0xFF32},
  664. {0xFF53,0xFF33},
  665. {0xFF54,0xFF34},
  666. {0xFF55,0xFF35},
  667. {0xFF56,0xFF36},
  668. {0xFF57,0xFF37},
  669. {0xFF58,0xFF38},
  670. {0xFF59,0xFF39},
  671. {0xFF5A,0xFF3A},
  672. };
  673. static const int reverse_caps_table[CAPS_LEN-1][2]={
  674. {0x41,0x61},
  675. {0x42,0x62},
  676. {0x43,0x63},
  677. {0x44,0x64},
  678. {0x45,0x65},
  679. {0x46,0x66},
  680. {0x47,0x67},
  681. {0x48,0x68},
  682. {0x49,0x69},
  683. {0x4a,0x6a},
  684. {0x4b,0x6b},
  685. {0x4c,0x6c},
  686. {0x4d,0x6d},
  687. {0x4e,0x6e},
  688. {0x4f,0x6f},
  689. {0x50,0x70},
  690. {0x51,0x71},
  691. {0x52,0x72},
  692. {0x53,0x73},
  693. {0x54,0x74},
  694. {0x55,0x75},
  695. {0x56,0x76},
  696. {0x57,0x77},
  697. {0x58,0x78},
  698. {0x59,0x79},
  699. {0x5a,0x7a},
  700. {0xc0,0xe0},
  701. {0xc1,0xe1},
  702. {0xc2,0xe2},
  703. {0xc3,0xe3},
  704. {0xc4,0xe4},
  705. {0xc5,0xe5},
  706. {0xc6,0xe6},
  707. {0xc7,0xe7},
  708. {0xc8,0xe8},
  709. {0xc9,0xe9},
  710. {0xca,0xea},
  711. {0xcb,0xeb},
  712. {0xcc,0xec},
  713. {0xcd,0xed},
  714. {0xce,0xee},
  715. {0xcf,0xef},
  716. {0xd0,0xf0},
  717. {0xd1,0xf1},
  718. {0xd2,0xf2},
  719. {0xd3,0xf3},
  720. {0xd4,0xf4},
  721. {0xd5,0xf5},
  722. {0xd6,0xf6},
  723. {0xd8,0xf8},
  724. {0xd9,0xf9},
  725. {0xda,0xfa},
  726. {0xdb,0xfb},
  727. {0xdc,0xfc},
  728. {0xdd,0xfd},
  729. {0xde,0xfe},
  730. {0x178,0xff},
  731. {0x100,0x101},
  732. {0x102,0x103},
  733. {0x104,0x105},
  734. {0x106,0x107},
  735. {0x108,0x109},
  736. {0x10a,0x10b},
  737. {0x10c,0x10d},
  738. {0x10e,0x10f},
  739. {0x110,0x111},
  740. {0x112,0x113},
  741. {0x114,0x115},
  742. {0x116,0x117},
  743. {0x118,0x119},
  744. {0x11a,0x11b},
  745. {0x11c,0x11d},
  746. {0x11e,0x11f},
  747. {0x120,0x121},
  748. {0x122,0x123},
  749. {0x124,0x125},
  750. {0x126,0x127},
  751. {0x128,0x129},
  752. {0x12a,0x12b},
  753. {0x12c,0x12d},
  754. {0x12e,0x12f},
  755. //{0x49,0x131},
  756. {0x132,0x133},
  757. {0x134,0x135},
  758. {0x136,0x137},
  759. {0x139,0x13a},
  760. {0x13b,0x13c},
  761. {0x13d,0x13e},
  762. {0x13f,0x140},
  763. {0x141,0x142},
  764. {0x143,0x144},
  765. {0x145,0x146},
  766. {0x147,0x148},
  767. {0x14a,0x14b},
  768. {0x14c,0x14d},
  769. {0x14e,0x14f},
  770. {0x150,0x151},
  771. {0x152,0x153},
  772. {0x154,0x155},
  773. {0x156,0x157},
  774. {0x158,0x159},
  775. {0x15a,0x15b},
  776. {0x15c,0x15d},
  777. {0x15e,0x15f},
  778. {0x160,0x161},
  779. {0x162,0x163},
  780. {0x164,0x165},
  781. {0x166,0x167},
  782. {0x168,0x169},
  783. {0x16a,0x16b},
  784. {0x16c,0x16d},
  785. {0x16e,0x16f},
  786. {0x170,0x171},
  787. {0x172,0x173},
  788. {0x174,0x175},
  789. {0x176,0x177},
  790. {0x179,0x17a},
  791. {0x17b,0x17c},
  792. {0x17d,0x17e},
  793. {0x182,0x183},
  794. {0x184,0x185},
  795. {0x187,0x188},
  796. {0x18b,0x18c},
  797. {0x191,0x192},
  798. {0x198,0x199},
  799. {0x1a0,0x1a1},
  800. {0x1a2,0x1a3},
  801. {0x1a4,0x1a5},
  802. {0x1a7,0x1a8},
  803. {0x1ac,0x1ad},
  804. {0x1af,0x1b0},
  805. {0x1b3,0x1b4},
  806. {0x1b5,0x1b6},
  807. {0x1b8,0x1b9},
  808. {0x1bc,0x1bd},
  809. {0x1c4,0x1c6},
  810. {0x1c7,0x1c9},
  811. {0x1ca,0x1cc},
  812. {0x1cd,0x1ce},
  813. {0x1cf,0x1d0},
  814. {0x1d1,0x1d2},
  815. {0x1d3,0x1d4},
  816. {0x1d5,0x1d6},
  817. {0x1d7,0x1d8},
  818. {0x1d9,0x1da},
  819. {0x1db,0x1dc},
  820. {0x1de,0x1df},
  821. {0x1e0,0x1e1},
  822. {0x1e2,0x1e3},
  823. {0x1e4,0x1e5},
  824. {0x1e6,0x1e7},
  825. {0x1e8,0x1e9},
  826. {0x1ea,0x1eb},
  827. {0x1ec,0x1ed},
  828. {0x1ee,0x1ef},
  829. {0x1f1,0x1f3},
  830. {0x1f4,0x1f5},
  831. {0x1fa,0x1fb},
  832. {0x1fc,0x1fd},
  833. {0x1fe,0x1ff},
  834. {0x200,0x201},
  835. {0x202,0x203},
  836. {0x204,0x205},
  837. {0x206,0x207},
  838. {0x208,0x209},
  839. {0x20a,0x20b},
  840. {0x20c,0x20d},
  841. {0x20e,0x20f},
  842. {0x210,0x211},
  843. {0x212,0x213},
  844. {0x214,0x215},
  845. {0x216,0x217},
  846. {0x181,0x253},
  847. {0x186,0x254},
  848. {0x18a,0x257},
  849. {0x18e,0x258},
  850. {0x18f,0x259},
  851. {0x190,0x25b},
  852. {0x193,0x260},
  853. {0x194,0x263},
  854. {0x197,0x268},
  855. {0x196,0x269},
  856. {0x19c,0x26f},
  857. {0x19d,0x272},
  858. {0x19f,0x275},
  859. {0x1a9,0x283},
  860. {0x1ae,0x288},
  861. {0x1b1,0x28a},
  862. {0x1b2,0x28b},
  863. {0x1b7,0x292},
  864. {0x386,0x3ac},
  865. {0x388,0x3ad},
  866. {0x389,0x3ae},
  867. {0x38a,0x3af},
  868. {0x391,0x3b1},
  869. {0x392,0x3b2},
  870. {0x393,0x3b3},
  871. {0x394,0x3b4},
  872. {0x395,0x3b5},
  873. {0x396,0x3b6},
  874. {0x397,0x3b7},
  875. {0x398,0x3b8},
  876. {0x399,0x3b9},
  877. {0x39a,0x3ba},
  878. {0x39b,0x3bb},
  879. {0x39c,0x3bc},
  880. {0x39d,0x3bd},
  881. {0x39e,0x3be},
  882. {0x39f,0x3bf},
  883. {0x3a0,0x3c0},
  884. {0x3a1,0x3c1},
  885. {0x3a3,0x3c3},
  886. {0x3a4,0x3c4},
  887. {0x3a5,0x3c5},
  888. {0x3a6,0x3c6},
  889. {0x3a7,0x3c7},
  890. {0x3a8,0x3c8},
  891. {0x3a9,0x3c9},
  892. {0x3aa,0x3ca},
  893. {0x3ab,0x3cb},
  894. {0x38c,0x3cc},
  895. {0x38e,0x3cd},
  896. {0x38f,0x3ce},
  897. {0x3e2,0x3e3},
  898. {0x3e4,0x3e5},
  899. {0x3e6,0x3e7},
  900. {0x3e8,0x3e9},
  901. {0x3ea,0x3eb},
  902. {0x3ec,0x3ed},
  903. {0x3ee,0x3ef},
  904. {0x410,0x430},
  905. {0x411,0x431},
  906. {0x412,0x432},
  907. {0x413,0x433},
  908. {0x414,0x434},
  909. {0x415,0x435},
  910. {0x416,0x436},
  911. {0x417,0x437},
  912. {0x418,0x438},
  913. {0x419,0x439},
  914. {0x41a,0x43a},
  915. {0x41b,0x43b},
  916. {0x41c,0x43c},
  917. {0x41d,0x43d},
  918. {0x41e,0x43e},
  919. {0x41f,0x43f},
  920. {0x420,0x440},
  921. {0x421,0x441},
  922. {0x422,0x442},
  923. {0x423,0x443},
  924. {0x424,0x444},
  925. {0x425,0x445},
  926. {0x426,0x446},
  927. {0x427,0x447},
  928. {0x428,0x448},
  929. {0x429,0x449},
  930. {0x42a,0x44a},
  931. {0x42b,0x44b},
  932. {0x42c,0x44c},
  933. {0x42d,0x44d},
  934. {0x42e,0x44e},
  935. {0x42f,0x44f},
  936. {0x401,0x451},
  937. {0x402,0x452},
  938. {0x403,0x453},
  939. {0x404,0x454},
  940. {0x405,0x455},
  941. {0x406,0x456},
  942. {0x407,0x457},
  943. {0x408,0x458},
  944. {0x409,0x459},
  945. {0x40a,0x45a},
  946. {0x40b,0x45b},
  947. {0x40c,0x45c},
  948. {0x40e,0x45e},
  949. {0x40f,0x45f},
  950. {0x460,0x461},
  951. {0x462,0x463},
  952. {0x464,0x465},
  953. {0x466,0x467},
  954. {0x468,0x469},
  955. {0x46a,0x46b},
  956. {0x46c,0x46d},
  957. {0x46e,0x46f},
  958. {0x470,0x471},
  959. {0x472,0x473},
  960. {0x474,0x475},
  961. {0x476,0x477},
  962. {0x478,0x479},
  963. {0x47a,0x47b},
  964. {0x47c,0x47d},
  965. {0x47e,0x47f},
  966. {0x480,0x481},
  967. {0x490,0x491},
  968. {0x492,0x493},
  969. {0x494,0x495},
  970. {0x496,0x497},
  971. {0x498,0x499},
  972. {0x49a,0x49b},
  973. {0x49c,0x49d},
  974. {0x49e,0x49f},
  975. {0x4a0,0x4a1},
  976. {0x4a2,0x4a3},
  977. {0x4a4,0x4a5},
  978. {0x4a6,0x4a7},
  979. {0x4a8,0x4a9},
  980. {0x4aa,0x4ab},
  981. {0x4ac,0x4ad},
  982. {0x4ae,0x4af},
  983. {0x4b0,0x4b1},
  984. {0x4b2,0x4b3},
  985. {0x4b4,0x4b5},
  986. {0x4b6,0x4b7},
  987. {0x4b8,0x4b9},
  988. {0x4ba,0x4bb},
  989. {0x4bc,0x4bd},
  990. {0x4be,0x4bf},
  991. {0x4c1,0x4c2},
  992. {0x4c3,0x4c4},
  993. {0x4c7,0x4c8},
  994. {0x4cb,0x4cc},
  995. {0x4d0,0x4d1},
  996. {0x4d2,0x4d3},
  997. {0x4d4,0x4d5},
  998. {0x4d6,0x4d7},
  999. {0x4d8,0x4d9},
  1000. {0x4da,0x4db},
  1001. {0x4dc,0x4dd},
  1002. {0x4de,0x4df},
  1003. {0x4e0,0x4e1},
  1004. {0x4e2,0x4e3},
  1005. {0x4e4,0x4e5},
  1006. {0x4e6,0x4e7},
  1007. {0x4e8,0x4e9},
  1008. {0x4ea,0x4eb},
  1009. {0x4ee,0x4ef},
  1010. {0x4f0,0x4f1},
  1011. {0x4f2,0x4f3},
  1012. {0x4f4,0x4f5},
  1013. {0x4f8,0x4f9},
  1014. {0x531,0x561},
  1015. {0x532,0x562},
  1016. {0x533,0x563},
  1017. {0x534,0x564},
  1018. {0x535,0x565},
  1019. {0x536,0x566},
  1020. {0x537,0x567},
  1021. {0x538,0x568},
  1022. {0x539,0x569},
  1023. {0x53a,0x56a},
  1024. {0x53b,0x56b},
  1025. {0x53c,0x56c},
  1026. {0x53d,0x56d},
  1027. {0x53e,0x56e},
  1028. {0x53f,0x56f},
  1029. {0x540,0x570},
  1030. {0x541,0x571},
  1031. {0x542,0x572},
  1032. {0x543,0x573},
  1033. {0x544,0x574},
  1034. {0x545,0x575},
  1035. {0x546,0x576},
  1036. {0x547,0x577},
  1037. {0x548,0x578},
  1038. {0x549,0x579},
  1039. {0x54a,0x57a},
  1040. {0x54b,0x57b},
  1041. {0x54c,0x57c},
  1042. {0x54d,0x57d},
  1043. {0x54e,0x57e},
  1044. {0x54f,0x57f},
  1045. {0x550,0x580},
  1046. {0x551,0x581},
  1047. {0x552,0x582},
  1048. {0x553,0x583},
  1049. {0x554,0x584},
  1050. {0x555,0x585},
  1051. {0x556,0x586},
  1052. {0x10a0,0x10d0},
  1053. {0x10a1,0x10d1},
  1054. {0x10a2,0x10d2},
  1055. {0x10a3,0x10d3},
  1056. {0x10a4,0x10d4},
  1057. {0x10a5,0x10d5},
  1058. {0x10a6,0x10d6},
  1059. {0x10a7,0x10d7},
  1060. {0x10a8,0x10d8},
  1061. {0x10a9,0x10d9},
  1062. {0x10aa,0x10da},
  1063. {0x10ab,0x10db},
  1064. {0x10ac,0x10dc},
  1065. {0x10ad,0x10dd},
  1066. {0x10ae,0x10de},
  1067. {0x10af,0x10df},
  1068. {0x10b0,0x10e0},
  1069. {0x10b1,0x10e1},
  1070. {0x10b2,0x10e2},
  1071. {0x10b3,0x10e3},
  1072. {0x10b4,0x10e4},
  1073. {0x10b5,0x10e5},
  1074. {0x10b6,0x10e6},
  1075. {0x10b7,0x10e7},
  1076. {0x10b8,0x10e8},
  1077. {0x10b9,0x10e9},
  1078. {0x10ba,0x10ea},
  1079. {0x10bb,0x10eb},
  1080. {0x10bc,0x10ec},
  1081. {0x10bd,0x10ed},
  1082. {0x10be,0x10ee},
  1083. {0x10bf,0x10ef},
  1084. {0x10c0,0x10f0},
  1085. {0x10c1,0x10f1},
  1086. {0x10c2,0x10f2},
  1087. {0x10c3,0x10f3},
  1088. {0x10c4,0x10f4},
  1089. {0x10c5,0x10f5},
  1090. {0x1e00,0x1e01},
  1091. {0x1e02,0x1e03},
  1092. {0x1e04,0x1e05},
  1093. {0x1e06,0x1e07},
  1094. {0x1e08,0x1e09},
  1095. {0x1e0a,0x1e0b},
  1096. {0x1e0c,0x1e0d},
  1097. {0x1e0e,0x1e0f},
  1098. {0x1e10,0x1e11},
  1099. {0x1e12,0x1e13},
  1100. {0x1e14,0x1e15},
  1101. {0x1e16,0x1e17},
  1102. {0x1e18,0x1e19},
  1103. {0x1e1a,0x1e1b},
  1104. {0x1e1c,0x1e1d},
  1105. {0x1e1e,0x1e1f},
  1106. {0x1e20,0x1e21},
  1107. {0x1e22,0x1e23},
  1108. {0x1e24,0x1e25},
  1109. {0x1e26,0x1e27},
  1110. {0x1e28,0x1e29},
  1111. {0x1e2a,0x1e2b},
  1112. {0x1e2c,0x1e2d},
  1113. {0x1e2e,0x1e2f},
  1114. {0x1e30,0x1e31},
  1115. {0x1e32,0x1e33},
  1116. {0x1e34,0x1e35},
  1117. {0x1e36,0x1e37},
  1118. {0x1e38,0x1e39},
  1119. {0x1e3a,0x1e3b},
  1120. {0x1e3c,0x1e3d},
  1121. {0x1e3e,0x1e3f},
  1122. {0x1e40,0x1e41},
  1123. {0x1e42,0x1e43},
  1124. {0x1e44,0x1e45},
  1125. {0x1e46,0x1e47},
  1126. {0x1e48,0x1e49},
  1127. {0x1e4a,0x1e4b},
  1128. {0x1e4c,0x1e4d},
  1129. {0x1e4e,0x1e4f},
  1130. {0x1e50,0x1e51},
  1131. {0x1e52,0x1e53},
  1132. {0x1e54,0x1e55},
  1133. {0x1e56,0x1e57},
  1134. {0x1e58,0x1e59},
  1135. {0x1e5a,0x1e5b},
  1136. {0x1e5c,0x1e5d},
  1137. {0x1e5e,0x1e5f},
  1138. {0x1e60,0x1e61},
  1139. {0x1e62,0x1e63},
  1140. {0x1e64,0x1e65},
  1141. {0x1e66,0x1e67},
  1142. {0x1e68,0x1e69},
  1143. {0x1e6a,0x1e6b},
  1144. {0x1e6c,0x1e6d},
  1145. {0x1e6e,0x1e6f},
  1146. {0x1e70,0x1e71},
  1147. {0x1e72,0x1e73},
  1148. {0x1e74,0x1e75},
  1149. {0x1e76,0x1e77},
  1150. {0x1e78,0x1e79},
  1151. {0x1e7a,0x1e7b},
  1152. {0x1e7c,0x1e7d},
  1153. {0x1e7e,0x1e7f},
  1154. {0x1e80,0x1e81},
  1155. {0x1e82,0x1e83},
  1156. {0x1e84,0x1e85},
  1157. {0x1e86,0x1e87},
  1158. {0x1e88,0x1e89},
  1159. {0x1e8a,0x1e8b},
  1160. {0x1e8c,0x1e8d},
  1161. {0x1e8e,0x1e8f},
  1162. {0x1e90,0x1e91},
  1163. {0x1e92,0x1e93},
  1164. {0x1e94,0x1e95},
  1165. {0x1ea0,0x1ea1},
  1166. {0x1ea2,0x1ea3},
  1167. {0x1ea4,0x1ea5},
  1168. {0x1ea6,0x1ea7},
  1169. {0x1ea8,0x1ea9},
  1170. {0x1eaa,0x1eab},
  1171. {0x1eac,0x1ead},
  1172. {0x1eae,0x1eaf},
  1173. {0x1eb0,0x1eb1},
  1174. {0x1eb2,0x1eb3},
  1175. {0x1eb4,0x1eb5},
  1176. {0x1eb6,0x1eb7},
  1177. {0x1eb8,0x1eb9},
  1178. {0x1eba,0x1ebb},
  1179. {0x1ebc,0x1ebd},
  1180. {0x1ebe,0x1ebf},
  1181. {0x1ec0,0x1ec1},
  1182. {0x1ec2,0x1ec3},
  1183. {0x1ec4,0x1ec5},
  1184. {0x1ec6,0x1ec7},
  1185. {0x1ec8,0x1ec9},
  1186. {0x1eca,0x1ecb},
  1187. {0x1ecc,0x1ecd},
  1188. {0x1ece,0x1ecf},
  1189. {0x1ed0,0x1ed1},
  1190. {0x1ed2,0x1ed3},
  1191. {0x1ed4,0x1ed5},
  1192. {0x1ed6,0x1ed7},
  1193. {0x1ed8,0x1ed9},
  1194. {0x1eda,0x1edb},
  1195. {0x1edc,0x1edd},
  1196. {0x1ede,0x1edf},
  1197. {0x1ee0,0x1ee1},
  1198. {0x1ee2,0x1ee3},
  1199. {0x1ee4,0x1ee5},
  1200. {0x1ee6,0x1ee7},
  1201. {0x1ee8,0x1ee9},
  1202. {0x1eea,0x1eeb},
  1203. {0x1eec,0x1eed},
  1204. {0x1eee,0x1eef},
  1205. {0x1ef0,0x1ef1},
  1206. {0x1ef2,0x1ef3},
  1207. {0x1ef4,0x1ef5},
  1208. {0x1ef6,0x1ef7},
  1209. {0x1ef8,0x1ef9},
  1210. {0x1f08,0x1f00},
  1211. {0x1f09,0x1f01},
  1212. {0x1f0a,0x1f02},
  1213. {0x1f0b,0x1f03},
  1214. {0x1f0c,0x1f04},
  1215. {0x1f0d,0x1f05},
  1216. {0x1f0e,0x1f06},
  1217. {0x1f0f,0x1f07},
  1218. {0x1f18,0x1f10},
  1219. {0x1f19,0x1f11},
  1220. {0x1f1a,0x1f12},
  1221. {0x1f1b,0x1f13},
  1222. {0x1f1c,0x1f14},
  1223. {0x1f1d,0x1f15},
  1224. {0x1f28,0x1f20},
  1225. {0x1f29,0x1f21},
  1226. {0x1f2a,0x1f22},
  1227. {0x1f2b,0x1f23},
  1228. {0x1f2c,0x1f24},
  1229. {0x1f2d,0x1f25},
  1230. {0x1f2e,0x1f26},
  1231. {0x1f2f,0x1f27},
  1232. {0x1f38,0x1f30},
  1233. {0x1f39,0x1f31},
  1234. {0x1f3a,0x1f32},
  1235. {0x1f3b,0x1f33},
  1236. {0x1f3c,0x1f34},
  1237. {0x1f3d,0x1f35},
  1238. {0x1f3e,0x1f36},
  1239. {0x1f3f,0x1f37},
  1240. {0x1f48,0x1f40},
  1241. {0x1f49,0x1f41},
  1242. {0x1f4a,0x1f42},
  1243. {0x1f4b,0x1f43},
  1244. {0x1f4c,0x1f44},
  1245. {0x1f4d,0x1f45},
  1246. {0x1f59,0x1f51},
  1247. {0x1f5b,0x1f53},
  1248. {0x1f5d,0x1f55},
  1249. {0x1f5f,0x1f57},
  1250. {0x1f68,0x1f60},
  1251. {0x1f69,0x1f61},
  1252. {0x1f6a,0x1f62},
  1253. {0x1f6b,0x1f63},
  1254. {0x1f6c,0x1f64},
  1255. {0x1f6d,0x1f65},
  1256. {0x1f6e,0x1f66},
  1257. {0x1f6f,0x1f67},
  1258. {0x1f88,0x1f80},
  1259. {0x1f89,0x1f81},
  1260. {0x1f8a,0x1f82},
  1261. {0x1f8b,0x1f83},
  1262. {0x1f8c,0x1f84},
  1263. {0x1f8d,0x1f85},
  1264. {0x1f8e,0x1f86},
  1265. {0x1f8f,0x1f87},
  1266. {0x1f98,0x1f90},
  1267. {0x1f99,0x1f91},
  1268. {0x1f9a,0x1f92},
  1269. {0x1f9b,0x1f93},
  1270. {0x1f9c,0x1f94},
  1271. {0x1f9d,0x1f95},
  1272. {0x1f9e,0x1f96},
  1273. {0x1f9f,0x1f97},
  1274. {0x1fa8,0x1fa0},
  1275. {0x1fa9,0x1fa1},
  1276. {0x1faa,0x1fa2},
  1277. {0x1fab,0x1fa3},
  1278. {0x1fac,0x1fa4},
  1279. {0x1fad,0x1fa5},
  1280. {0x1fae,0x1fa6},
  1281. {0x1faf,0x1fa7},
  1282. {0x1fb8,0x1fb0},
  1283. {0x1fb9,0x1fb1},
  1284. {0x1fd8,0x1fd0},
  1285. {0x1fd9,0x1fd1},
  1286. {0x1fe8,0x1fe0},
  1287. {0x1fe9,0x1fe1},
  1288. {0x24b6,0x24d0},
  1289. {0x24b7,0x24d1},
  1290. {0x24b8,0x24d2},
  1291. {0x24b9,0x24d3},
  1292. {0x24ba,0x24d4},
  1293. {0x24bb,0x24d5},
  1294. {0x24bc,0x24d6},
  1295. {0x24bd,0x24d7},
  1296. {0x24be,0x24d8},
  1297. {0x24bf,0x24d9},
  1298. {0x24c0,0x24da},
  1299. {0x24c1,0x24db},
  1300. {0x24c2,0x24dc},
  1301. {0x24c3,0x24dd},
  1302. {0x24c4,0x24de},
  1303. {0x24c5,0x24df},
  1304. {0x24c6,0x24e0},
  1305. {0x24c7,0x24e1},
  1306. {0x24c8,0x24e2},
  1307. {0x24c9,0x24e3},
  1308. {0x24ca,0x24e4},
  1309. {0x24cb,0x24e5},
  1310. {0x24cc,0x24e6},
  1311. {0x24cd,0x24e7},
  1312. {0x24ce,0x24e8},
  1313. {0x24cf,0x24e9},
  1314. {0xff21,0xff41},
  1315. {0xff22,0xff42},
  1316. {0xff23,0xff43},
  1317. {0xff24,0xff44},
  1318. {0xff25,0xff45},
  1319. {0xff26,0xff46},
  1320. {0xff27,0xff47},
  1321. {0xff28,0xff48},
  1322. {0xff29,0xff49},
  1323. {0xff2a,0xff4a},
  1324. {0xff2b,0xff4b},
  1325. {0xff2c,0xff4c},
  1326. {0xff2d,0xff4d},
  1327. {0xff2e,0xff4e},
  1328. {0xff2f,0xff4f},
  1329. {0xff30,0xff50},
  1330. {0xff31,0xff51},
  1331. {0xff32,0xff52},
  1332. {0xff33,0xff53},
  1333. {0xff34,0xff54},
  1334. {0xff35,0xff55},
  1335. {0xff36,0xff56},
  1336. {0xff37,0xff57},
  1337. {0xff38,0xff58},
  1338. {0xff39,0xff59},
  1339. {0xff3a,0xff5a}
  1340. };
  1341. static int _find_upper(int ch) {
  1342. int low = 0;
  1343. int high = CAPS_LEN -1;
  1344. int middle;
  1345. while( low <= high )
  1346. {
  1347. middle = ( low + high ) / 2;
  1348. if( ch < caps_table[ middle][0] ) {
  1349. high = middle - 1; //search low end of array
  1350. } else if ( caps_table[middle][0] < ch) {
  1351. low = middle + 1; //search high end of array
  1352. } else {
  1353. return caps_table[middle][1];
  1354. }
  1355. }
  1356. return ch;
  1357. }
  1358. static int _find_lower(int ch) {
  1359. int low = 0;
  1360. int high = CAPS_LEN -2;
  1361. int middle;
  1362. while( low <= high )
  1363. {
  1364. middle = ( low + high ) / 2;
  1365. if( ch < reverse_caps_table[ middle][0] ) {
  1366. high = middle - 1; //search low end of array
  1367. } else if ( reverse_caps_table[middle][0] < ch) {
  1368. low = middle + 1; //search high end of array
  1369. } else {
  1370. return reverse_caps_table[middle][1];
  1371. }
  1372. }
  1373. return ch;
  1374. }
  1375. #endif