"Fossies" - the Fresh Open Source Software archive

Member "fltk-1.3.2/documentation/html/iso8859__6_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
iso8859_6.h
00001 /* $XFree86: xc/lib/X11/lcUniConv/iso8859_6.h,v 1.3 2000/11/29 17:40:32 dawes Exp $ */
00002 
00003 /*
00004  * ISO-8859-6
00005  */
00006 
00007 #ifdef NEED_TOWC
00008 static const unsigned short iso8859_6_2uni[96] = {
00009   /* 0xa0 */
00010   0x00a0, 0xfffd, 0xfffd, 0xfffd, 0x00a4, 0xfffd, 0xfffd, 0xfffd,
00011   0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0x00ad, 0xfffd, 0xfffd,
00012   /* 0xb0 */
00013   0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
00014   0xfffd, 0xfffd, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f,
00015   /* 0xc0 */
00016   0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
00017   0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f,
00018   /* 0xd0 */
00019   0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637,
00020   0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
00021   /* 0xe0 */
00022   0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
00023   0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f,
00024   /* 0xf0 */
00025   0x0650, 0x0651, 0x0652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
00026   0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
00027 };
00028 
00029 static int
00030 iso8859_6_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
00031 {
00032   unsigned char c = *s;
00033   if (c < 0xa0) {
00034     *pwc = (ucs4_t) c;
00035     return 1;
00036   }
00037   else {
00038     unsigned short wc = iso8859_6_2uni[c-0xa0];
00039     if (wc != 0xfffd) {
00040       *pwc = (ucs4_t) wc;
00041       return 1;
00042     }
00043   }
00044   return RET_ILSEQ;
00045 }
00046 #endif /* NEED_TOWC */
00047 
00048 #ifdef  NEED_TOMB
00049 static const unsigned char iso8859_6_page00[16] = {
00050   0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
00051   0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
00052 };
00053 static const unsigned char iso8859_6_page06[80] = {
00054   0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */
00055   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
00056   0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */
00057   0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
00058   0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
00059   0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
00060   0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
00061   0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
00062   0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
00063   0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
00064 };
00065 
00066 static int
00067 iso8859_6_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
00068 {
00069   unsigned char c = 0;
00070   if (wc < 0x00a0) {
00071     *r = wc;
00072     return 1;
00073   }
00074   else if (wc >= 0x00a0 && wc < 0x00b0)
00075     c = iso8859_6_page00[wc-0x00a0];
00076   else if (wc >= 0x0608 && wc < 0x0658)
00077     c = iso8859_6_page06[wc-0x0608];
00078   if (c != 0) {
00079     *r = c;
00080     return 1;
00081   }
00082   return RET_ILSEQ;
00083 }
00084 #endif /* NEED_TOMB */