"Fossies" - the Fresh Open Source Software archive

Member "fltk-1.3.2/documentation/html/georgian__ps_8h_source.html" of archive fltk-1.3.2-docs-html.tar.gz:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. Alternatively you can here view or download the uninterpreted source code. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.

FLTK 1.3.2
georgian_ps.h
00001 /* $XFree86: xc/lib/X11/lcUniConv/georgian_ps.h,v 1.3 2000/11/29 17:40:29 dawes Exp $ */
00002 
00003 /*
00004  * GEORGIAN-PS
00005  */
00006 
00007 static const unsigned short georgian_ps_2uni_1[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 static const unsigned short georgian_ps_2uni_2[39] = {
00016   /* 0xc0 */
00017   0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10f1,
00018   0x10d7, 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10f2, 0x10dd,
00019   /* 0xd0 */
00020   0x10de, 0x10df, 0x10e0, 0x10e1, 0x10e2, 0x10f3, 0x10e3, 0x10e4,
00021   0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec,
00022   /* 0xe0 */
00023   0x10ed, 0x10ee, 0x10f4, 0x10ef, 0x10f0, 0x10f5,
00024 };
00025 
00026 static int
00027 georgian_ps_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
00028 {
00029   unsigned char c = *s;
00030   if (c >= 0x80 && c < 0xa0)
00031     *pwc = (ucs4_t) georgian_ps_2uni_1[c-0x80];
00032   else if (c >= 0xc0 && c < 0xe6)
00033     *pwc = (ucs4_t) georgian_ps_2uni_2[c-0xc0];
00034   else
00035     *pwc = (ucs4_t) c;
00036   return 1;
00037 }
00038 
00039 static const unsigned char georgian_ps_page00[32] = {
00040   0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
00041   0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */
00042   0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
00043   0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */
00044 };
00045 static const unsigned char georgian_ps_page01[72] = {
00046   0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
00047   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */
00048   0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */
00049   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */
00050   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
00051   0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
00052   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
00053   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
00054   0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
00055 };
00056 static const unsigned char georgian_ps_page02[32] = {
00057   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */
00058   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */
00059   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */
00060   0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */
00061 };
00062 static const unsigned char georgian_ps_page10[40] = {
00063   0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc8, /* 0xd0-0xd7 */
00064   0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xcf, 0xd0, 0xd1, /* 0xd8-0xdf */
00065   0xd2, 0xd3, 0xd4, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, /* 0xe0-0xe7 */
00066   0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe3, /* 0xe8-0xef */
00067   0xe4, 0xc7, 0xce, 0xd5, 0xe2, 0xe5, 0x00, 0x00, /* 0xf0-0xf7 */
00068 };
00069 static const unsigned char georgian_ps_page20[48] = {
00070   0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */
00071   0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */
00072   0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */
00073   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
00074   0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
00075   0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
00076 };
00077 
00078 static int
00079 georgian_ps_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
00080 {
00081   unsigned char c = 0;
00082   if (wc < 0x0080) {
00083     *r = wc;
00084     return 1;
00085   }
00086   else if (wc >= 0x0080 && wc < 0x00a0)
00087     c = georgian_ps_page00[wc-0x0080];
00088   else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e6 && wc < 0x0100))
00089     c = wc;
00090   else if (wc >= 0x0150 && wc < 0x0198)
00091     c = georgian_ps_page01[wc-0x0150];
00092   else if (wc >= 0x02c0 && wc < 0x02e0)
00093     c = georgian_ps_page02[wc-0x02c0];
00094   else if (wc >= 0x10d0 && wc < 0x10f8)
00095     c = georgian_ps_page10[wc-0x10d0];
00096   else if (wc >= 0x2010 && wc < 0x2040)
00097     c = georgian_ps_page20[wc-0x2010];
00098   else if (wc == 0x2122)
00099     c = 0x99;
00100   if (c != 0) {
00101     *r = c;
00102     return 1;
00103   }
00104   return RET_ILSEQ;
00105 }