~ubuntu-branches/ubuntu/edgy/lynx/edgy

« back to all changes in this revision

Viewing changes to WWW/Library/Implementation/HTCJK.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2004-09-16 12:14:10 UTC
  • Revision ID: james.westby@ubuntu.com-20040916121410-cz1gu92c4nqfeyrg
Tags: upstream-2.8.5
ImportĀ upstreamĀ versionĀ 2.8.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*                      CJK character converter         HTCJK.h
 
2
**                      =======================
 
3
**
 
4
**      Added 11-Jun-96 by FM, based on jiscode.h for
 
5
**        Yutaka Sato's (ysato@etl.go.jp) SJIS.c, and
 
6
**        Takuya ASADA's (asada@three-a.co.jp) CJK patches.
 
7
**        (see SGML.c).
 
8
**
 
9
*/
 
10
 
 
11
#ifndef HTCJK_H
 
12
#define HTCJK_H
 
13
 
 
14
#ifndef HTUTILS_H
 
15
#include <HTUtils.h>
 
16
#endif
 
17
 
 
18
/*
 
19
**      STATUS CHANGE CODES
 
20
*/
 
21
#ifdef ESC
 
22
#undef ESC
 
23
#endif /* ESC */
 
24
#define ESC             CH_ESC  /* S/390 -- gil -- 0098 */
 
25
#define TO_2BCODE       '$'
 
26
#define TO_1BCODE       '('
 
27
 
 
28
#define TO_KANA         '\016'
 
29
#define TO_KANAOUT      '\017'
 
30
 
 
31
#define TO_KANJI        "\033$B"
 
32
#define TO_HANJI        "\033$A"
 
33
#define TO_HANGUL       "\033$(C"
 
34
#define TO_ASCII        "\033(B"
 
35
 
 
36
#define IS_SJIS_LO(lo)  ((0x40<=lo)&&(lo!=0x7F)&&(lo<=0xFC))
 
37
#define IS_SJIS_HI1(hi) ((0x81<=hi)&&(hi<=0x9F))        /* 1st lev. */
 
38
#define IS_SJIS_HI2(hi) ((0xE0<=hi)&&(hi<=0xEF))        /* 2nd lev. */
 
39
#define IS_SJIS(hi,lo,in_sjis) (!IS_SJIS_LO(lo)?0:IS_SJIS_HI1(hi)?(in_sjis=1):in_sjis&&IS_SJIS_HI2(hi))
 
40
#define IS_SJIS_2BYTE(hi,lo) (IS_SJIS_LO(lo)&&(IS_SJIS_HI1(hi)||IS_SJIS_HI2(hi)))
 
41
#define IS_SJIS_X0201KANA(lo) ((0xA1<=lo)&&(lo<=0xDF))
 
42
 
 
43
#define IS_EUC_LOX(lo)  ((0xA1<=lo)&&(lo<=0xFE))        /* extended */
 
44
#define IS_EUC_HI(hi)   ((0xA1<=hi)&&(hi<=0xFE))
 
45
#define IS_EUC_X0201KANA(hi,lo) ((hi==0x8E)&&(0xA1<=lo)&&(lo<=0xDF))
 
46
#define IS_EUC(hi,lo) ((IS_EUC_HI(hi) && IS_EUC_LOX(lo))||IS_EUC_X0201KANA(hi,lo))
 
47
 
 
48
#define IS_JAPANESE_2BYTE(hi,lo) (IS_SJIS_2BYTE(hi,lo) || IS_EUC(hi,lo))
 
49
 
 
50
#define IS_BIG5_LOS(lo) ((0x40<=lo)&&(lo<=0x7E))        /* standard */
 
51
#define IS_BIG5_LOX(lo) ((0xA1<=lo)&&(lo<=0xFE))        /* extended */
 
52
#define IS_BIG5_HI(hi)  ((0xA1<=hi)&&(hi<=0xFE))
 
53
#define IS_BIG5(hi,lo) (IS_BIG5_HI(hi) && (IS_BIG5_LOS(lo) || IS_BIG5_LOX(lo)))
 
54
 
 
55
typedef enum {NOKANJI, EUC, SJIS, JIS} HTkcode;
 
56
typedef enum {NOCJK, JAPANESE, CHINESE, KOREAN, TAIPEI} HTCJKlang;
 
57
 
 
58
extern HTCJKlang HTCJK;
 
59
 
 
60
/*
 
61
**  Function prototypes.
 
62
*/
 
63
extern void JISx0201TO0208_EUC PARAMS((
 
64
        register unsigned char          IHI,
 
65
        register unsigned char          ILO,
 
66
        register unsigned char *        OHI,
 
67
        register unsigned char *        OLO));
 
68
 
 
69
extern unsigned char * SJIS_TO_JIS1 PARAMS((
 
70
        register unsigned char          HI,
 
71
        register unsigned char          LO,
 
72
        register unsigned char *        JCODE));
 
73
 
 
74
extern unsigned char * JIS_TO_SJIS1 PARAMS((
 
75
        register unsigned char          HI,
 
76
        register unsigned char          LO,
 
77
        register unsigned char *        SJCODE));
 
78
 
 
79
extern unsigned char * EUC_TO_SJIS1 PARAMS((
 
80
        unsigned char                   HI,
 
81
        unsigned char                   LO,
 
82
        register unsigned char *        SJCODE));
 
83
 
 
84
extern void JISx0201TO0208_SJIS PARAMS((
 
85
        register unsigned char          I,
 
86
        register unsigned char *        OHI,
 
87
        register unsigned char *        OLO));
 
88
 
 
89
extern unsigned char * SJIS_TO_EUC1 PARAMS((
 
90
        unsigned char           HI,
 
91
        unsigned char           LO,
 
92
        unsigned char *         EUCp));
 
93
 
 
94
extern unsigned char * SJIS_TO_EUC PARAMS((
 
95
        unsigned char *         src,
 
96
        unsigned char *         dst));
 
97
 
 
98
extern unsigned char * EUC_TO_SJIS PARAMS((
 
99
        unsigned char *         src,
 
100
        unsigned char *         dst));
 
101
 
 
102
extern unsigned char * EUC_TO_JIS PARAMS((
 
103
        unsigned char *         src,
 
104
        unsigned char *         dst,
 
105
        CONST char *            toK,
 
106
        CONST char *            toA));
 
107
 
 
108
extern unsigned char * TO_EUC PARAMS((
 
109
        CONST unsigned char *   jis,
 
110
        unsigned char *         euc));
 
111
 
 
112
extern void TO_SJIS PARAMS((
 
113
        CONST unsigned char *   any,
 
114
        unsigned char *         sjis));
 
115
 
 
116
extern void TO_JIS PARAMS((
 
117
        CONST unsigned char *   any,
 
118
        unsigned char *         jis));
 
119
 
 
120
extern char *str_kcode PARAMS((HTkcode code));
 
121
 
 
122
#endif /* HTCJK_H */