georgian_academy.h revision 1ab64890
11c7386f4Smrg/* $XFree86$ */ 2602e473dSmrg 321298544Smrg/* 41016ad83Smrg * GEORGIAN-ACADEMY 5b9526c6aSmrg */ 6b9526c6aSmrg 71c7386f4Smrgstatic const unsigned short georgian_academy_2uni[32] = { 81016ad83Smrg /* 0x80 */ 91016ad83Smrg 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 10602e473dSmrg 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, 111c7386f4Smrg /* 0x90 */ 1221298544Smrg 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 1321298544Smrg 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, 14aa30ed02Smrg}; 15b9526c6aSmrg 16602e473dSmrgstatic int 171016ad83Smrggeorgian_academy_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) 181016ad83Smrg{ 191016ad83Smrg unsigned char c = *s; 201016ad83Smrg if (c >= 0x80 && c < 0xa0) 21b9526c6aSmrg *pwc = (ucs4_t) georgian_academy_2uni[c-0x80]; 221016ad83Smrg else if (c >= 0xc0 && c < 0xe7) 231c7386f4Smrg *pwc = (ucs4_t) c + 0x1010; 241c7386f4Smrg else 251c7386f4Smrg *pwc = (ucs4_t) c; 261c7386f4Smrg return 1; 271c7386f4Smrg} 281c7386f4Smrg 291c7386f4Smrgstatic const unsigned char georgian_academy_page00[32] = { 301c7386f4Smrg 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 311c7386f4Smrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */ 321c7386f4Smrg 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 331c7386f4Smrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */ 341c7386f4Smrg}; 351c7386f4Smrgstatic const unsigned char georgian_academy_page01[72] = { 361c7386f4Smrg 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ 371c7386f4Smrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ 381c7386f4Smrg 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ 39602e473dSmrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ 408ffb90f1Smrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ 41602e473dSmrg 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ 42602e473dSmrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 431016ad83Smrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ 441016ad83Smrg 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 45602e473dSmrg}; 461c7386f4Smrgstatic const unsigned char georgian_academy_page02[32] = { 471c7386f4Smrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ 481c7386f4Smrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ 491c7386f4Smrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ 50602e473dSmrg 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ 51602e473dSmrg}; 52602e473dSmrgstatic const unsigned char georgian_academy_page20[48] = { 53602e473dSmrg 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ 54b9526c6aSmrg 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ 55aa30ed02Smrg 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ 56aa30ed02Smrg 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ 57b9526c6aSmrg 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ 58aa30ed02Smrg 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ 59aa30ed02Smrg}; 60602e473dSmrg 61602e473dSmrgstatic int 62602e473dSmrggeorgian_academy_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) 63602e473dSmrg{ 641c7386f4Smrg unsigned char c = 0; 651c7386f4Smrg if (wc < 0x0080) { 661c7386f4Smrg *r = wc; 671c7386f4Smrg return 1; 681c7386f4Smrg } 691c7386f4Smrg else if (wc >= 0x0080 && wc < 0x00a0) 701c7386f4Smrg c = georgian_academy_page00[wc-0x0080]; 711c7386f4Smrg else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e7 && wc < 0x0100)) 721c7386f4Smrg c = wc; 731c7386f4Smrg else if (wc >= 0x0150 && wc < 0x0198) 741c7386f4Smrg c = georgian_academy_page01[wc-0x0150]; 75602e473dSmrg else if (wc >= 0x02c0 && wc < 0x02e0) 76602e473dSmrg c = georgian_academy_page02[wc-0x02c0]; 77602e473dSmrg else if (wc >= 0x10d0 && wc < 0x10f7) 78602e473dSmrg c = wc-0x1010; 79602e473dSmrg else if (wc >= 0x2010 && wc < 0x2040) 80602e473dSmrg c = georgian_academy_page20[wc-0x2010]; 81602e473dSmrg else if (wc == 0x2122) 82602e473dSmrg c = 0x99; 83602e473dSmrg if (c != 0) { 84602e473dSmrg *r = c; 85602e473dSmrg return 1; 86602e473dSmrg } 87602e473dSmrg return RET_ILSEQ; 88602e473dSmrg} 89602e473dSmrg