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