w3m

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

iso2022.h (5003B)


      1 
      2 #ifndef _WC_ISO2022_H
      3 #define _WC_ISO2022_H
      4 
      5 #define WC_C_ESC	0x1B	/* '\033' */
      6 #define WC_C_SS2	0x4E	/* ESC 'N' */
      7 #define WC_C_SS3	0x4F	/* ESC 'O' */
      8 #define WC_C_LS2	0x6E	/* ESC 'n' */
      9 #define WC_C_LS3	0x6F	/* ESC 'o' */
     10 #define WC_C_LS1R	0x7E	/* ESC '~' */
     11 #define WC_C_LS2R	0x7D	/* ESC '}' */
     12 #define WC_C_LS3R	0x7C	/* ESC '|' */
     13 #define WC_C_G0_CS94	0x28	/* ESC '(' F */
     14 #define WC_C_G1_CS94	0x29	/* ESC ')' F */
     15 #define WC_C_G2_CS94	0x2A	/* ESC '*' F */
     16 #define WC_C_G3_CS94	0x2B	/* ESC '+' F */
     17 #define WC_C_G0_CS96	0x2C	/* ESC ',' F */ /* ISO 2022 does not permit */
     18 #define WC_C_G1_CS96	0x2D	/* ESC '-' F */
     19 #define WC_C_G2_CS96	0x2E	/* ESC '.' F */
     20 #define WC_C_G3_CS96	0x2F	/* ESC '/' F */
     21 #define WC_C_MBCS	0x24	/* ESC '$' G F */
     22 #define WC_C_CS942	0x21	/* ESC G '!' F */
     23 #define WC_C_C0		0x21	/* ESC '!' F */
     24 #define WC_C_C1		0x22	/* ESC '"' F */
     25 #define WC_C_REP	0x26	/* ESC '&' F ESC '"' F */
     26 #define WC_C_CSWSR	0x25	/* ESC '%' F */
     27 #define WC_C_CSWOSR	0x2F	/* ESC '%' '/' F */
     28 
     29 #define WC_C_SO		0x0E	/* '\016' */
     30 #define WC_C_SI		0x0F	/* '\017' */
     31 #define WC_C_SS2R	0x8E
     32 #define WC_C_SS3R	0x8F
     33 
     34 #define WC_F_ISO_646_US		0x42	/* 'B' */
     35 #define WC_F_ISO_646_IRV	WC_F_ISO_646_US
     36 #define WC_F_US_ASCII		WC_F_ISO_646_US
     37 #define WC_F_JIS_X_0201K	0x49	/* 'I' */
     38 #define WC_F_JIS_X_0201		0x4A	/* 'J' */
     39 #define WC_F_GB_1988		0x54	/* 'T' */
     40 
     41 #define WC_F_ISO_8859_1		0x41	/* 'A' */
     42 #define WC_F_ISO_8859_2		0x42	/* 'B' */
     43 #define WC_F_ISO_8859_3		0x43	/* 'C' */
     44 #define WC_F_ISO_8859_4		0x44	/* 'D' */
     45 #define WC_F_ISO_8859_5		0x4C	/* 'L' */
     46 #define WC_F_ISO_8859_6		0x47	/* 'G' */
     47 #define WC_F_ISO_8859_7		0x46	/* 'F' */
     48 #define WC_F_ISO_8859_8		0x48	/* 'H' */
     49 #define WC_F_ISO_8859_9		0x4D	/* 'M' */
     50 #define WC_F_ISO_8859_10	0x56	/* 'V' */
     51 #define WC_F_ISO_8859_11	0x54	/* 'T' */
     52 #define WC_F_TIS_620		WC_F_ISO_8859_11
     53 #define WC_F_ISO_8859_13	0x59	/* 'Y' */
     54 #define WC_F_ISO_8859_14	0x5F	/* '_' */
     55 #define WC_F_ISO_8859_15	0x62	/* 'b' */
     56 #define WC_F_ISO_8859_16	0x66	/* 'f' */
     57 
     58 #define WC_F_JIS_C_6226		0x40	/* '@' */
     59 #define WC_F_GB_2312		0x41	/* 'A' */
     60 #define WC_F_JIS_X_0208		0x42	/* 'B' */
     61 #define WC_F_KS_X_1001		0x43	/* 'C' */
     62 #define WC_F_KS_C_5601		WC_F_KS_X_1001
     63 #define WC_F_JIS_X_0212		0x44	/* 'D' */
     64 #define WC_F_ISO_IR_165		0x45	/* 'E' */
     65 #define WC_F_CCITT_GB		WC_F_ISO_IR_165
     66 #define WC_F_CNS_11643_1	0x47	/* 'G' */
     67 #define WC_F_CNS_11643_2	0x48	/* 'H' */
     68 #define WC_F_CNS_11643_3	0x49	/* 'I' */
     69 #define WC_F_CNS_11643_4	0x4A	/* 'J' */
     70 #define WC_F_CNS_11643_5	0x4B	/* 'K' */
     71 #define WC_F_CNS_11643_6	0x4C	/* 'L' */
     72 #define WC_F_CNS_11643_7	0x4D	/* 'M' */
     73 #define WC_F_KPS_9566		0x4E	/* 'N' */
     74 #define WC_F_JIS_X_0213_1	0x4F	/* 'O' */
     75 #define WC_F_JIS_X_0213_2	0x50	/* 'P' */
     76 
     77 #define WC_ISO_NOSTATE		0
     78 #define WC_ISO_MBYTE1		1
     79 #define WC_EUC_NOSTATE		0
     80 #define WC_EUC_MBYTE1		2	/* for EUC (G1) */
     81 #define WC_EUC_TW_SS2		3	/* for EUC_TW (G2) */
     82 #define WC_EUC_TW_MBYTE1	4	/* for EUC_TW (G2) */
     83 #define WC_EUC_TW_MBYTE2	5	/* for EUC_TW (G2) */
     84 #define WC_ISO_ESC		6
     85 #define WC_ISO_CSWSR		0x10
     86 #define WC_ISO_CSWOSR		0x20
     87 
     88 #define WC_ISO_MAP_CG   0xF0
     89 #define WC_ISO_MAP_C0	0x10			/* 0x00 - 0x1F */
     90 #define WC_ISO_MAP_GL	0x00			/* 0x21 - 0x7E */
     91 #define WC_ISO_MAP_GL96	0x20			/* 0x20,  0x7F */
     92 #define WC_ISO_MAP_C1	0x50			/* 0x80 - 0x9F */
     93 #define WC_ISO_MAP_GR	0x40			/* 0xA1 - 0xFE */
     94 #define WC_ISO_MAP_GR96	0x60			/* 0xA0,  0xFF */
     95 #define WC_ISO_MAP_SO	(0x1 | WC_ISO_MAP_C0)	/* 0x0E */
     96 #define WC_ISO_MAP_SI	(0x2 | WC_ISO_MAP_C0)	/* 0x0F */
     97 #define WC_ISO_MAP_ESC	(0x3 | WC_ISO_MAP_C0)	/* 0x1B */
     98 #define WC_ISO_MAP_SS2	(0x4 | WC_ISO_MAP_C1)	/* 0x8E */
     99 #define WC_ISO_MAP_SS3	(0x5 | WC_ISO_MAP_C1)	/* 0x8F */
    100 #define WC_ISO_MAP_DETECT	0x4F
    101 
    102 #define WC_CS94WUL_N(U,L)	(((U) - 0x21) * 0x5E + (L) - 0x21)
    103 #define WC_CS94W_N(c)	WC_CS94WUL_N(((c) >> 8) & 0x7F, (c) & 0x7F)     
    104 #define WC_CS96WUL_N(U,L)	(((U) - 0x20) * 0x60 + (L) - 0x20)
    105 #define WC_CS96W_N(c)	WC_CS96WUL_N(((c) >> 8) & 0x7F, (c) & 0x7F)     
    106 #define WC_N_CS94WU(c)	((c) / 0x5E + 0x21)
    107 #define WC_N_CS94WL(c)	((c) % 0x5E + 0x21)
    108 #define WC_N_CS94W(c)	((WC_N_CS94WU(c) << 8) + WC_N_CS94WL(c))
    109 #define WC_N_CS96WU(c)	((c) / 0x60 + 0x20)
    110 #define WC_N_CS96WL(c)	((c) % 0x60 + 0x20)
    111 #define WC_N_CS96W(c)	((WC_N_CS96WU(c) << 8) + WC_N_CS96WL(c))
    112 
    113 extern wc_uint8 WC_ISO_MAP[];
    114 
    115 extern Str  wc_conv_from_iso2022(Str is, wc_ces ces);
    116 extern void wc_push_to_iso2022(Str os, wc_wchar_t cc, wc_status *st);
    117 extern void wc_push_to_euc(Str os, wc_wchar_t cc, wc_status *st);
    118 extern void wc_push_to_eucjp(Str os, wc_wchar_t cc, wc_status *st);
    119 extern void wc_push_to_euctw(Str os, wc_wchar_t cc, wc_status *st);
    120 extern void wc_push_to_iso8859(Str os, wc_wchar_t cc, wc_status *st);
    121 extern void wc_push_to_iso2022_end(Str os, wc_status *st);
    122 extern int  wc_parse_iso2022_esc(wc_uchar **ptr, wc_status *st);
    123 extern void wc_push_iso2022_esc(Str os, wc_ccs ccs, wc_uchar g, wc_uint8 invoke, wc_status *st);
    124 extern void wc_create_gmap(wc_status *st);
    125 extern Str  wc_char_conv_from_iso2022(wc_uchar c, wc_status *st);
    126 
    127 #endif