#include "onew.h"
/*
 *	KEISEN_MODE with Wnn/Romkan
 *	By M. Kawafuji
 */
int KEISEN_TOGGLE_A	= Cntl('N');
int KEISEN_TOGGLE_B	= Cntl('B');

static
keisen_toggle(type)
int  type;
{
	if( in_kana_mode() ){
		if (type == KEISEN_TOGGLE_A) {
			ONEW_kanamode &= (ZENKAKU | KF_KEISEN_A);
			Onew_RK_imode_set( ONEW_kanamode ^ KF_KEISEN_A);
			return 1;
		}
		else if (type == KEISEN_TOGGLE_B) {
			ONEW_kanamode &= (ZENKAKU | KF_KEISEN_B);
			Onew_RK_imode_set( ONEW_kanamode ^ KF_KEISEN_B);
			return 1;
		}
		return 0;
	}
	return 0;
}


static char *ONEW_KEISEN_ON;
#define IS_KEISEN_TOGGLE(ch) \
	(ONEW_KEISEN_ON && (ch==KEISEN_TOGGLE_A || ch==KEISEN_TOGGLE_B))

static keisen_toggle_sw(ch)
{
	if( IS_KEISEN_TOGGLE(ch) ){
		keisen_toggle(ch);
		return 1;
	}
	return 0;
}
keisen_init(){
	ONEW_KEISEN_ON = getenv("ONEW_KEISENMODE");
	if( ONEW_KEISEN_ON == 0 )
		return;
	Onew_defineKanamode(ZENKAKU|KF_KEISEN_A,KEISEN_TOGGLE_A,keisen_toggle);
	Onew_defineKanamode(ZENKAKU|KF_KEISEN_B,KEISEN_TOGGLE_B,keisen_toggle);
}


syntax highlighted by Code2HTML, v. 0.9.1