w3m

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/w3m.git/
Log | Files | Refs | README

ccs.h (9737B)


      1 
      2 #ifndef _WC_CCS_H
      3 #define _WC_CCS_H
      4 
      5 #include "iso2022.h"
      6 #include "priv.h"
      7 
      8 #define WC_F_ISO_BASE	0x40
      9 #define WC_F_PCS_BASE	0x01
     10 #define WC_F_WCS_BASE	0x00
     11 
     12 #define WC_F_CS94_END	WC_F_GB_1988
     13 #define WC_F_CS96_END	WC_F_ISO_8859_16
     14 #define WC_F_CS94W_END	WC_F_JIS_X_0213_2
     15 #define WC_F_CS96W_END	0
     16 #define WC_F_CS942_END	0
     17 #define WC_F_PCS_END	WC_F_RAW
     18 #define WC_F_PCSW_END	WC_F_HKSCS_2
     19 #define WC_F_WCS16_END	WC_F_UCS2
     20 #define WC_F_WCS16W_END	WC_F_UCS2
     21 #define WC_F_WCS32_END	WC_F_GB18030
     22 #define WC_F_WCS32W_END	WC_F_GB18030
     23 
     24 #define WC_CCS_A_SET		0x0FFFF
     25 #define WC_CCS_A_TYPE		0x0FF00
     26 #define WC_CCS_A_INDEX		0x000FF
     27 #define WC_CCS_A_MBYTE		0x08000
     28 #define WC_CCS_A_WIDE		0x10000
     29 #define WC_CCS_A_COMB		0x20000
     30 #define WC_CCS_A_ISO_2022	0x00700
     31 
     32 #define WC_CCS_A_CS94		0x00100
     33 #define WC_CCS_A_CS96		0x00200
     34 #define WC_CCS_A_CS942		0x00400
     35 #define WC_CCS_A_PCS		0x00800
     36 #define WC_CCS_A_WCS16		0x01000
     37 #define WC_CCS_A_WCS32		0x02000
     38 #define WC_CCS_A_UNKNOWN	0x04000
     39 #define WC_CCS_A_CS94W		(WC_CCS_A_CS94|WC_CCS_A_MBYTE)
     40 #define WC_CCS_A_CS96W		(WC_CCS_A_CS96|WC_CCS_A_MBYTE)
     41 #define WC_CCS_A_PCSW		(WC_CCS_A_PCS|WC_CCS_A_MBYTE)
     42 #define WC_CCS_A_WCS16W		(WC_CCS_A_WCS16|WC_CCS_A_WIDE)
     43 #define WC_CCS_A_WCS32W		(WC_CCS_A_WCS32|WC_CCS_A_WIDE)
     44 #define WC_CCS_A_UNKNOWN_W	(WC_CCS_A_UNKNOWN|WC_CCS_A_MBYTE)
     45 #define WC_CCS_A_CS94_C		(WC_CCS_A_CS94|WC_CCS_A_COMB)
     46 #define WC_CCS_A_CS96_C		(WC_CCS_A_CS96|WC_CCS_A_COMB)
     47 #define WC_CCS_A_CS942_C	(WC_CCS_A_CS942|WC_CCS_A_COMB)
     48 #define WC_CCS_A_PCS_C		(WC_CCS_A_PCS|WC_CCS_A_COMB)
     49 #define WC_CCS_A_WCS16_C	(WC_CCS_A_WCS16|WC_CCS_A_COMB)
     50 #define WC_CCS_A_WCS32_C	(WC_CCS_A_WCS32|WC_CCS_A_COMB)
     51 #define WC_CCS_A_CS94W_C	(WC_CCS_A_CS94W|WC_CCS_A_COMB)
     52 #define WC_CCS_A_CS96W_C	(WC_CCS_A_CS96W|WC_CCS_A_COMB)
     53 #define WC_CCS_A_PCSW_C		(WC_CCS_A_PCSW|WC_CCS_A_COMB)
     54 #define WC_CCS_A_WCS16W_C	(WC_CCS_A_WCS16W|WC_CCS_A_COMB)
     55 #define WC_CCS_A_WCS32W_C	(WC_CCS_A_WCS32W|WC_CCS_A_COMB)
     56 
     57 #define WC_CCS_SET_CS94(c)	((c)|WC_CCS_A_CS94)
     58 #define WC_CCS_SET_CS94W(c)	((c)|WC_CCS_A_CS94W)
     59 #define WC_CCS_SET_CS96(c)	((c)|WC_CCS_A_CS96)
     60 #define WC_CCS_SET_CS96W(c)	((c)|WC_CCS_A_CS96W)
     61 #define WC_CCS_SET_CS942(c)	((c)|WC_CCS_A_CS942)
     62 #define WC_CCS_SET_PCS(c)	((c)|WC_CCS_A_PCS)
     63 #define WC_CCS_SET_PCSW(c)	((c)|WC_CCS_A_PCSW)
     64 #define WC_CCS_SET_WCS16(c)	((c)|WC_CCS_A_WCS16)
     65 #define WC_CCS_SET_WCS16W(c)	((c)|WC_CCS_A_WCS16W)
     66 #define WC_CCS_SET_WCS32(c)	((c)|WC_CCS_A_WCS32)
     67 #define WC_CCS_SET_WCS32W(c)	((c)|WC_CCS_A_WCS32W)
     68 
     69 #define WC_CCS_IS_WIDE(c)	((c)&(WC_CCS_A_MBYTE|WC_CCS_A_WIDE))
     70 #define WC_CCS_IS_COMB(c)	((c)&WC_CCS_A_COMB)
     71 #define WC_CCS_IS_ISO_2022(c)	((c)&WC_CCS_A_ISO_2022)
     72 #define WC_CCS_IS_UNKNOWN(c)	((c)&WC_CCS_A_UNKNOWN)
     73 
     74 #define WC_CCS_SET(c)		((c)&WC_CCS_A_SET)
     75 #define WC_CCS_TYPE(c)		((c)&WC_CCS_A_TYPE)
     76 #define WC_CCS_INDEX(c)		((c)&WC_CCS_A_INDEX)
     77 #define WC_CCS_GET_F(c)		WC_CCS_INDEX(c)
     78 
     79 #define WC_CCS_US_ASCII		WC_CCS_SET_CS94(WC_F_US_ASCII)
     80 #define WC_CCS_JIS_X_0201	WC_CCS_SET_CS94(WC_F_JIS_X_0201)
     81 #define WC_CCS_JIS_X_0201K	WC_CCS_SET_CS94(WC_F_JIS_X_0201K)
     82 #define WC_CCS_GB_1988		WC_CCS_SET_CS94(WC_F_GB_1988)
     83 
     84 #define WC_CCS_ISO_8859_1	WC_CCS_SET_CS96(WC_F_ISO_8859_1)
     85 #define WC_CCS_ISO_8859_2	WC_CCS_SET_CS96(WC_F_ISO_8859_2)
     86 #define WC_CCS_ISO_8859_3	WC_CCS_SET_CS96(WC_F_ISO_8859_3)
     87 #define WC_CCS_ISO_8859_4	WC_CCS_SET_CS96(WC_F_ISO_8859_4)
     88 #define WC_CCS_ISO_8859_5	WC_CCS_SET_CS96(WC_F_ISO_8859_5)
     89 #define WC_CCS_ISO_8859_6	WC_CCS_SET_CS96(WC_F_ISO_8859_6)
     90 #define WC_CCS_ISO_8859_7	WC_CCS_SET_CS96(WC_F_ISO_8859_7)
     91 #define WC_CCS_ISO_8859_8	WC_CCS_SET_CS96(WC_F_ISO_8859_8)
     92 #define WC_CCS_ISO_8859_9	WC_CCS_SET_CS96(WC_F_ISO_8859_9)
     93 #define WC_CCS_ISO_8859_10	WC_CCS_SET_CS96(WC_F_ISO_8859_10)
     94 #define WC_CCS_ISO_8859_11	WC_CCS_SET_CS96(WC_F_ISO_8859_11)
     95 #define WC_CCS_TIS_620		WC_CCS_ISO_8859_11
     96 #define WC_CCS_ISO_8859_13	WC_CCS_SET_CS96(WC_F_ISO_8859_13)
     97 #define WC_CCS_ISO_8859_14	WC_CCS_SET_CS96(WC_F_ISO_8859_14)
     98 #define WC_CCS_ISO_8859_15	WC_CCS_SET_CS96(WC_F_ISO_8859_15)
     99 #define WC_CCS_ISO_8859_16	WC_CCS_SET_CS96(WC_F_ISO_8859_16)
    100 
    101 #define WC_CCS_SPECIAL		WC_CCS_SET_PCS(WC_F_SPECIAL)
    102 #define WC_CCS_CP437		WC_CCS_SET_PCS(WC_F_CP437)
    103 #define WC_CCS_CP737		WC_CCS_SET_PCS(WC_F_CP737)
    104 #define WC_CCS_CP775		WC_CCS_SET_PCS(WC_F_CP775)
    105 #define WC_CCS_CP850		WC_CCS_SET_PCS(WC_F_CP850)
    106 #define WC_CCS_CP852		WC_CCS_SET_PCS(WC_F_CP852)
    107 #define WC_CCS_CP855		WC_CCS_SET_PCS(WC_F_CP855)
    108 #define WC_CCS_CP856		WC_CCS_SET_PCS(WC_F_CP856)
    109 #define WC_CCS_CP857		WC_CCS_SET_PCS(WC_F_CP857)
    110 #define WC_CCS_CP860		WC_CCS_SET_PCS(WC_F_CP860)
    111 #define WC_CCS_CP861		WC_CCS_SET_PCS(WC_F_CP861)
    112 #define WC_CCS_CP862		WC_CCS_SET_PCS(WC_F_CP862)
    113 #define WC_CCS_CP863		WC_CCS_SET_PCS(WC_F_CP863)
    114 #define WC_CCS_CP864		WC_CCS_SET_PCS(WC_F_CP864)
    115 #define WC_CCS_CP865		WC_CCS_SET_PCS(WC_F_CP865)
    116 #define WC_CCS_CP866		WC_CCS_SET_PCS(WC_F_CP866)
    117 #define WC_CCS_CP869		WC_CCS_SET_PCS(WC_F_CP869)
    118 #define WC_CCS_CP874		WC_CCS_SET_PCS(WC_F_CP874)
    119 #define WC_CCS_CP1006		WC_CCS_SET_PCS(WC_F_CP1006)
    120 #define WC_CCS_CP1250		WC_CCS_SET_PCS(WC_F_CP1250)
    121 #define WC_CCS_CP1251		WC_CCS_SET_PCS(WC_F_CP1251)
    122 #define WC_CCS_CP1252		WC_CCS_SET_PCS(WC_F_CP1252)
    123 #define WC_CCS_CP1253		WC_CCS_SET_PCS(WC_F_CP1253)
    124 #define WC_CCS_CP1254		WC_CCS_SET_PCS(WC_F_CP1254)
    125 #define WC_CCS_CP1255		WC_CCS_SET_PCS(WC_F_CP1255)
    126 #define WC_CCS_CP1256		WC_CCS_SET_PCS(WC_F_CP1256)
    127 #define WC_CCS_CP1257		WC_CCS_SET_PCS(WC_F_CP1257)
    128 #define WC_CCS_CP1258_1		WC_CCS_SET_PCS(WC_F_CP1258_1)
    129 #define WC_CCS_CP1258_2		WC_CCS_SET_PCS(WC_F_CP1258_2)
    130 #define WC_CCS_TCVN_5712_1	WC_CCS_SET_PCS(WC_F_TCVN_5712_1)
    131 #define WC_CCS_TCVN_5712_2	WC_CCS_SET_PCS(WC_F_TCVN_5712_2)
    132 #define WC_CCS_TCVN_5712_3	WC_CCS_SET_PCS(WC_F_TCVN_5712_3)
    133 #define WC_CCS_VISCII_11_1	WC_CCS_SET_PCS(WC_F_VISCII_11_1)
    134 #define WC_CCS_VISCII_11_2	WC_CCS_SET_PCS(WC_F_VISCII_11_2)
    135 #define WC_CCS_VPS_1		WC_CCS_SET_PCS(WC_F_VPS_1)
    136 #define WC_CCS_VPS_2		WC_CCS_SET_PCS(WC_F_VPS_2)
    137 #define WC_CCS_KOI8_R		WC_CCS_SET_PCS(WC_F_KOI8_R)
    138 #define WC_CCS_KOI8_U		WC_CCS_SET_PCS(WC_F_KOI8_U)
    139 #define WC_CCS_NEXTSTEP		WC_CCS_SET_PCS(WC_F_NEXTSTEP)
    140 #define WC_CCS_GBK_80		WC_CCS_SET_PCS(WC_F_GBK_80)
    141 #define WC_CCS_RAW		WC_CCS_SET_PCS(WC_F_RAW)
    142 
    143 #define WC_CCS_JIS_C_6226	WC_CCS_SET_CS94W(WC_F_JIS_C_6226)
    144 #define WC_CCS_JIS_X_0208	WC_CCS_SET_CS94W(WC_F_JIS_X_0208)
    145 #define WC_CCS_JIS_X_0212	WC_CCS_SET_CS94W(WC_F_JIS_X_0212)
    146 #define WC_CCS_GB_2312		WC_CCS_SET_CS94W(WC_F_GB_2312)
    147 #define WC_CCS_ISO_IR_165	WC_CCS_SET_CS94W(WC_F_ISO_IR_165)
    148 #define WC_CCS_CNS_11643_1	WC_CCS_SET_CS94W(WC_F_CNS_11643_1)
    149 #define WC_CCS_CNS_11643_2	WC_CCS_SET_CS94W(WC_F_CNS_11643_2)
    150 #define WC_CCS_CNS_11643_3	WC_CCS_SET_CS94W(WC_F_CNS_11643_3)
    151 #define WC_CCS_CNS_11643_4	WC_CCS_SET_CS94W(WC_F_CNS_11643_4)
    152 #define WC_CCS_CNS_11643_5	WC_CCS_SET_CS94W(WC_F_CNS_11643_5)
    153 #define WC_CCS_CNS_11643_6	WC_CCS_SET_CS94W(WC_F_CNS_11643_6)
    154 #define WC_CCS_CNS_11643_7	WC_CCS_SET_CS94W(WC_F_CNS_11643_7)
    155 #define WC_CCS_KS_X_1001	WC_CCS_SET_CS94W(WC_F_KS_X_1001)
    156 #define WC_CCS_KPS_9566		WC_CCS_SET_CS94W(WC_F_KPS_9566)
    157 #define WC_CCS_JIS_X_0213_1	WC_CCS_SET_CS94W(WC_F_JIS_X_0213_1)
    158 #define WC_CCS_JIS_X_0213_2	WC_CCS_SET_CS94W(WC_F_JIS_X_0213_2)
    159 
    160 #define WC_CCS_SPECIAL_W	WC_CCS_SET_PCSW(WC_F_SPECIAL_W)
    161 #define WC_CCS_BIG5		WC_CCS_SET_PCSW(WC_F_BIG5)
    162 #define WC_CCS_BIG5_1		WC_CCS_SET_PCSW(WC_F_BIG5_1)
    163 #define WC_CCS_BIG5_2		WC_CCS_SET_PCSW(WC_F_BIG5_2)
    164 #define WC_CCS_CNS_11643_8	WC_CCS_SET_PCSW(WC_F_CNS_11643_8)
    165 #define WC_CCS_CNS_11643_9	WC_CCS_SET_PCSW(WC_F_CNS_11643_9)
    166 #define WC_CCS_CNS_11643_10	WC_CCS_SET_PCSW(WC_F_CNS_11643_10)
    167 #define WC_CCS_CNS_11643_11	WC_CCS_SET_PCSW(WC_F_CNS_11643_11)
    168 #define WC_CCS_CNS_11643_12	WC_CCS_SET_PCSW(WC_F_CNS_11643_12)
    169 #define WC_CCS_CNS_11643_13	WC_CCS_SET_PCSW(WC_F_CNS_11643_13)
    170 #define WC_CCS_CNS_11643_14	WC_CCS_SET_PCSW(WC_F_CNS_11643_14)
    171 #define WC_CCS_CNS_11643_15	WC_CCS_SET_PCSW(WC_F_CNS_11643_15)
    172 #define WC_CCS_CNS_11643_16	WC_CCS_SET_PCSW(WC_F_CNS_11643_16)
    173 #define WC_CCS_CNS_11643_X	WC_CCS_SET_PCSW(WC_F_CNS_11643_X)
    174 #define WC_CCS_GB_12345		WC_CCS_SET_PCSW(WC_F_GB_12345)
    175 #define WC_CCS_JOHAB		WC_CCS_SET_PCSW(WC_F_JOHAB)
    176 #define WC_CCS_JOHAB_1		WC_CCS_SET_PCSW(WC_F_JOHAB_1)
    177 #define WC_CCS_JOHAB_2		WC_CCS_SET_PCSW(WC_F_JOHAB_2)
    178 #define WC_CCS_JOHAB_3		WC_CCS_SET_PCSW(WC_F_JOHAB_3)
    179 #define WC_CCS_SJIS_EXT		WC_CCS_SET_PCSW(WC_F_SJIS_EXT)
    180 #define WC_CCS_SJIS_EXT_1	WC_CCS_SET_PCSW(WC_F_SJIS_EXT_1)
    181 #define WC_CCS_SJIS_EXT_2	WC_CCS_SET_PCSW(WC_F_SJIS_EXT_2)
    182 #define WC_CCS_GBK		WC_CCS_SET_PCSW(WC_F_GBK)
    183 #define WC_CCS_GBK_1		WC_CCS_SET_PCSW(WC_F_GBK_1)
    184 #define WC_CCS_GBK_2		WC_CCS_SET_PCSW(WC_F_GBK_2)
    185 #define WC_CCS_GBK_EXT		WC_CCS_SET_PCSW(WC_F_GBK_EXT)
    186 #define WC_CCS_GBK_EXT_1	WC_CCS_SET_PCSW(WC_F_GBK_EXT_1)
    187 #define WC_CCS_GBK_EXT_2	WC_CCS_SET_PCSW(WC_F_GBK_EXT_2)
    188 #define WC_CCS_UHC		WC_CCS_SET_PCSW(WC_F_UHC)
    189 #define WC_CCS_UHC_1		WC_CCS_SET_PCSW(WC_F_UHC_1)
    190 #define WC_CCS_UHC_2		WC_CCS_SET_PCSW(WC_F_UHC_2)
    191 #define WC_CCS_HKSCS		WC_CCS_SET_PCSW(WC_F_HKSCS)
    192 #define WC_CCS_HKSCS_1		WC_CCS_SET_PCSW(WC_F_HKSCS_1)
    193 #define WC_CCS_HKSCS_2		WC_CCS_SET_PCSW(WC_F_HKSCS_2)
    194 
    195 #define WC_CCS_UCS2		WC_CCS_SET_WCS16(WC_F_UCS2)
    196 #define WC_CCS_UCS4		WC_CCS_SET_WCS32(WC_F_UCS4)
    197 #define WC_CCS_UCS_TAG		WC_CCS_SET_WCS32(WC_F_UCS_TAG)
    198 #define WC_CCS_GB18030		WC_CCS_SET_WCS32(WC_F_GB18030)
    199 #define WC_CCS_UCS2_W		WC_CCS_SET_WCS16W(WC_F_UCS2)
    200 #define WC_CCS_UCS4_W		WC_CCS_SET_WCS32W(WC_F_UCS4)
    201 #define WC_CCS_UCS_TAG_W	WC_CCS_SET_WCS32W(WC_F_UCS_TAG)
    202 #define WC_CCS_GB18030_W	WC_CCS_SET_WCS32W(WC_F_GB18030)
    203 
    204 #define WC_CCS_UNKNOWN		WC_CCS_A_UNKNOWN
    205 #define WC_CCS_C1		(WC_CCS_A_UNKNOWN|WC_F_C1)
    206 #define WC_CCS_UNKNOWN_W	WC_CCS_A_UNKNOWN_W
    207 
    208 #define WC_CCS_IS_UNICODE(c)	(WC_CCS_SET(c) == WC_CCS_UCS2 || WC_CCS_SET(c) == WC_CCS_UCS4 || WC_CCS_SET(c) == WC_CCS_UCS_TAG)
    209 
    210 extern wc_bool wc_is_combining(wc_wchar_t cc);
    211 
    212 #endif