#include "defines.h"

unint akcnv(unint c,int mode)
/* 半角文字を全角文字にする */
{
unint cc;
	if (c>=0xff || c<' ' || c==0x7f || check_kanji1(c)) return(c); /* 変換不能の時 */
	
	if (c>=0xa0 && c<=0xdf) { /* 仮名 */
		cc=hantozen(c);
		if (mode&BIT0) cc=zkatahira(cc); /* mode BIT0=ひらがな変換 */
		return(cc);
	}
	
	/* 文字変換が行われている時のため */
	if (c=='~') {
		// ￣ or 〜 <- XCのhantozenは常に〜になる
		if (mode&BIT1) {
			if (B_BPEEK((unchar *)SCHRSW)&BIT1) return(0x8160);
		}
		return(0x8150); // ￣
	}
	if (c=='\\') {
		// ￥ or ＼ <- XCのhantozenは常に￥になる
		if (mode&BIT1) {
			if (B_BPEEK((unchar *)SCHRSW)&BIT0) return(0x815f);
		}
		// 次のhantozenにまかせる
	}
	/* 英数字記号：0x20〜0x7e */
	return(hantozen(c));
}

#if 0
main()
{
unint i;
	for (i=0x20;i<=0x7e;i++) {
		B_PUTC(akcnv(i,0));
	}
	printf("\n");
	for (i=0xa0;i<=0xdf;i++) {
		B_PUTC(akcnv(i,0));
	}
	printf("\n");
	for (i=0xa0;i<=0xdf;i++) {
		B_PUTC(akcnv(i,1));
	}
	printf("\n");
}
#endif
