/*
* kanji.h
* $Id: kanji.h,v 3.6 1996/11/28 09:01:21 candy Exp $
*/
#ifndef KANJI_H /* [ */
#define KANJI_H
#ifndef is1sjis
#define is1sjis(c) (((0x81<=(unsigned char)(c))&&((unsigned char)(c)<=0x9f))||((0xe0<=(unsigned char)(c))&&((unsigned char)(c)<=0xfc)))
#endif
#ifndef is1euc
#define is1euc(c) ((0x81<=(unsigned char)(c))&&((unsigned char)(c)<=0xfe))
#endif
struct MB {
enum {
MB_INITIAL, /* initial state : ank chars */
MB_KI1, /* detected 033 */
MB_KI2, /* detected '$' */
MB_INKANJI, /* detected '@' */
MB_KO1, /* detected 033 */
MB_KO2 /* detected '(' */
} st;
int hi; /* 1st byte of a multi byte character */
};
#define MB_CLEAR(mb) ((mb)->st = MB_INITIAL, (mb)->hi = 0)
#define KI_1 '$'
#define KO_1 '('
#define isskana(c) (((unsigned char)(c))>=0xa0&&((unsigned char)(c))<0xe0)
extern int kanji_in; /* default '@' */
extern int kanji_out; /* default 'J' */
extern int euc_to_sjis(struct MB *mb, int ch, int (*put)(int));
extern int jis_to_sjis(struct MB *mb, int ch, int (*put)(int));
extern int sjis_to_euc(struct MB *mb, int ch, int (*put)(int));
extern int sjis_to_jis(struct MB *mb, int ch, int (*put)(int));
extern char * stretos(char *dst, const char *src);
extern char * strstoe(char *dst, const char *src);
extern size_t strstoelen(const char *src);
extern char * strstoe2(char *dst, const char *src);
#endif /* ] KANJI_H */
syntax highlighted by Code2HTML, v. 0.9.1