1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
/* -*- mode: C; mode: fold -*- */
/* slkanji.h --- Interface To use Japanese 2byte KANJI code
* Copyright (c) 1995, 2000 Kazuhisa Yoshino(k-yosino@actweb.ne.jp)
* This file is part of the Japanized S-Lang library.
*
* You may distribute under the terms of either the GNU General Public
* License or the Perl Artistic License.
*/
/* Added by H.Nishizuka */
#ifndef TRUE
#define TRUE (-1)
#endif
#ifndef FALSE
#define FALSE (0)
#endif
#define issjiskanji(c) ((0x81 <= (unsigned char)(c&0xff) && (unsigned char)(c&0xff) <= 0x9f) \
|| (0xe0 <= (unsigned char)(c&0xff) && (unsigned char)(c&0xff) <= 0xfc))
#define iseuckanji(c) (0xa1 <= (unsigned char)(c&0xff) && (unsigned char)(c&0xff) <= 0xfe)
#define isjiskanji(c) (0x21 <= (unsigned char)(c&0xff) && (unsigned char)(c&0xff) <= 0x7e)
#define ishkana(c) (0xa0 <= (unsigned char)(c&0xff) && (unsigned char)(c&0xff) <= 0xdf)
#ifdef iskanji
# undef iskanji
#endif
#define iskanji(c) IsKanji(c,kSLcode)
#define SS2 0x8E /* for EUC kana (Single Shift JIS-X0201kana)*/
#define ESC 0x1b
#define NON 0
#define NOKANJI 0
#define ASCII 0
#define EUC 1
#define JIS 2
#define SJIS 3
#define BINARY 4
#ifndef IBMPC_SYSTEM
# define SLANG_DEFAULT_KANJI_CODE EUC
#else
# define SLANG_DEFAULT_KANJI_CODE SJIS
#endif
# define KANJI_DEFAULT_CODE SLANG_DEFAULT_KANJI_CODE
#ifndef NULL
#define NULL 0
#endif
extern char *Kcode[];
extern int kSLfiAuto, SKanaToDKana;
extern int kSLcode;
extern int kSLfile_code, kSLinput_code, kSLdisplay_code, kSLsystem_code;
extern int DetectLevel;
extern int IsKanji(int, int);
extern int kanji_pos(unsigned char *, unsigned char *);
extern int short_kanji_pos(unsigned short *, unsigned short *);
#define kanji_pos2 short_kanji_pos
extern int iskanji2nd(char *, int);
extern char *kcode_to_str(int);
extern int str_to_kcode(char *);
#ifdef REAL_UNIX_SYSTEM
extern int Stricmp(char *, char *);
#else
#define Stricmp stricmp
#endif
extern void sjistojis(char *, char *);
extern void jistosjis(char *, char *);
extern void euctosjis(char *, char *);
extern void sjistoeuc(char *, char *);
extern void euctojis(char *, char *);
extern void jistoeuc(char *, char *);
extern void notconv(char *, char *);
#define NCODE 4
extern void (*kSLcodeconv[NCODE][NCODE])();
#if 0
extern void kSLset_kanji_filecode(int *);
extern void kSLset_kanji_inputcode(int *);
extern void kSLset_kanji_displaycode(int *);
extern void kSLset_kanji_systemcode(int *);
extern void set_kanji_kSLcode(int *);
extern int kSLget_kanji_filecode(void);
extern int kSLget_kanji_inputcode(void);
extern int kSLget_kanji_displaycode(void);
extern char *get_kanji_systemcode(void);
extern char *get_kanji_kSLcode(void);
#if 0
extern char get_1st_kanji_filecode(void);
extern char get_1st_kanji_inputcode(void);
extern char get_1st_kanji_displaycode(void);
extern char get_1st_kanji_systemcode(void);
extern char get_1st_kanji_jedcode(void);
#endif
extern void kSLrot_kanji_filecode(void);
extern void kSLrot_kanji_inputcode(void);
extern void kSLrot_kanji_displaycode(void);
extern void kSLrot_kanji_systemcode(void);
#endif
extern char *file_kanji_autocode(char *);
extern void han_to_zen(int *);
extern void han2zen(unsigned char *, unsigned char *, int *, int *, int);
extern int kSLis_kanji_code(void);
extern int kcode_detect(char *);
extern int IsKcode(unsigned char *, int, int *);
extern int kSLinit_kanji(void);
/* compatible for old version */
#define init_SLKanji kSLinit_kanji
extern int kSLCheckLineNum(unsigned char *, int, int, int, int);
extern unsigned char * kSLCodeConv(unsigned char *, int *, int, int, int);
extern unsigned int kSLsys_getkey(void);
|