#include <jfctype.h>
#include "defines.h"
#include "asm.h"

int kacnv(unint c,int mode)
/*	bit 0 仮名ﾓｰﾄﾞ  : 0=全角ひらがなも変換 , 1=全角カタカナのみ変換
	bit 1 1/4角文字 : 0=1/4角文字は変換しない , 1=する
	bit 2 1/2角文字 : 0=1/2角文字は変換しない , 1=する
	bit 3 ｷｬﾗｸﾀｰ    : 0=\~はそのまま , 1=スイッチに従って変更する
*/
{
	if (jishira(c)) { /* ひらがな */
		if (mode&BIT0) return(c); /* カタカナのみ */
	}
	if (mode&BIT3) { /* ￥￣ -> ＼〜 : 文字変換が行われている時のため */
	    unint f;
		f=B_BPEEK((unchar *)SCHRSW);
		if (f&BIT0) { /* ￥ -> ＼ 変換モード */
			if (c==L'￥') return(c); /* 変換しない */
			if (c==L'＼') return('\\'); // 表示ではバックスラッシュになる
		}
		if (f&BIT1) { /* ￣ -> 〜 変換モード */
			if (c==L'￣') return(c); /* 変換しない */
			if (c==L'〜') return('~'); // 表示では波線になる
		}
	}
	if (!(mode&BIT2) && c>=0x8000 && c<=0x80ff) return(c); /* 1/2角文字 */
	if (!(mode&BIT1) && c>=0xf000 && c<=0xf3ff) return(c); /* 1/4角文字 */
	return(kacnvA(c));
}
