FLTK 1.3.0
|
00001 /* $XFree86: xc/lib/X11/lcUniConv/georgian_academy.h,v 1.3 2000/11/29 17:40:29 dawes Exp $ */ 00002 00003 /* 00004 * GEORGIAN-ACADEMY 00005 */ 00006 00007 static const unsigned short georgian_academy_2uni[32] = { 00008 /* 0x80 */ 00009 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 00010 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, 00011 /* 0x90 */ 00012 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 00013 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, 00014 }; 00015 00016 static int 00017 georgian_academy_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) 00018 { 00019 unsigned char c = *s; 00020 if (c >= 0x80 && c < 0xa0) 00021 *pwc = (ucs4_t) georgian_academy_2uni[c-0x80]; 00022 else if (c >= 0xc0 && c < 0xe7) 00023 *pwc = (ucs4_t) c + 0x1010; 00024 else 00025 *pwc = (ucs4_t) c; 00026 return 1; 00027 } 00028 00029 static const unsigned char georgian_academy_page00[32] = { 00030 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 00031 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */ 00032 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 00033 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */ 00034 }; 00035 static const unsigned char georgian_academy_page01[72] = { 00036 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ 00037 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ 00038 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ 00039 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ 00040 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ 00041 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ 00042 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ 00043 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ 00044 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ 00045 }; 00046 static const unsigned char georgian_academy_page02[32] = { 00047 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ 00048 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ 00049 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ 00050 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ 00051 }; 00052 static const unsigned char georgian_academy_page20[48] = { 00053 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ 00054 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ 00055 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ 00056 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ 00057 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ 00058 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ 00059 }; 00060 00061 static int 00062 georgian_academy_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) 00063 { 00064 unsigned char c = 0; 00065 if (wc < 0x0080) { 00066 *r = wc; 00067 return 1; 00068 } 00069 else if (wc >= 0x0080 && wc < 0x00a0) 00070 c = georgian_academy_page00[wc-0x0080]; 00071 else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e7 && wc < 0x0100)) 00072 c = wc; 00073 else if (wc >= 0x0150 && wc < 0x0198) 00074 c = georgian_academy_page01[wc-0x0150]; 00075 else if (wc >= 0x02c0 && wc < 0x02e0) 00076 c = georgian_academy_page02[wc-0x02c0]; 00077 else if (wc >= 0x10d0 && wc < 0x10f7) 00078 c = wc-0x1010; 00079 else if (wc >= 0x2010 && wc < 0x2040) 00080 c = georgian_academy_page20[wc-0x2010]; 00081 else if (wc == 0x2122) 00082 c = 0x99; 00083 if (c != 0) { 00084 *r = c; 00085 return 1; 00086 } 00087 return RET_ILSEQ; 00088 }