diff -cr kterm-6.2.0/Imakefile /tmp/kterm-6.2.0/Imakefile *** kterm-6.2.0/Imakefile Thu May 15 17:57:00 2003 --- /tmp/kterm-6.2.0/Imakefile Thu May 15 17:46:59 2003 *************** *** 43,49 **** -DOSMINORVERSION=$(OSMINORVERSION) MISC_DEFINES = /* -DALLOWLOGFILEEXEC */ XKB_DEFINES = XkbClientDefines ! DEFINES = $(XKB_DEFINES) $(XPOLL_DEF) -DKTERM -DSTATUSLINE -DKEEPALIVE -DWALLPAPER #ifdef KTERM_XIM XIMSRCS = xim.c --- 43,49 ---- -DOSMINORVERSION=$(OSMINORVERSION) MISC_DEFINES = /* -DALLOWLOGFILEEXEC */ XKB_DEFINES = XkbClientDefines ! DEFINES = $(XKB_DEFINES) $(XPOLL_DEF) -DKTERM -DSTATUSLINE -DKEEPALIVE -DWALLPAPER -DFEPSEQ #ifdef KTERM_XIM XIMSRCS = xim.c diff -cr kterm-6.2.0/charproc.c /tmp/kterm-6.2.0/charproc.c *** kterm-6.2.0/charproc.c Thu May 15 17:57:00 2003 --- /tmp/kterm-6.2.0/charproc.c Thu May 15 17:34:33 2003 *************** *** 3007,3012 **** --- 3007,3027 ---- screen->max_col + 1, False); break; #endif /* STATUSLINE */ + #ifdef FEPSEQ /*itojun*/ + case 98: + if (func == bitset) + ConversionForceOn(); + else + ConversionForceOff(); + break; + + case 99: + if (func == bitset) + ConversionOn(); + else + ConversionOff(); + break; + #endif /*FEPSEQ*/ case 1000: /* xterm bogus sequence */ if(func == bitset) screen->send_mouse_pos = 2; diff -cr kterm-6.2.0/kinput2.c /tmp/kterm-6.2.0/kinput2.c *** kterm-6.2.0/kinput2.c Fri Jul 12 14:01:42 1996 --- /tmp/kterm-6.2.0/kinput2.c Thu May 15 17:46:28 2003 *************** *** 409,411 **** --- 409,446 ---- queue_event = 0; } } + + #ifdef FEPSEQ /*itojun*/ + void + ConversionForceOn() + { + Cardinal zero = 0; + HandleBeginConversion(term, (XEvent *)NULL, (String *)NULL, &zero); + } + + void + ConversionForceOff() + { + _endConversion(term, None, False); + } + + static int convertingFlag = 0; + + void + ConversionOn() + { + if (convertingFlag) + ConversionForceOn(); + } + + void + ConversionOff() + { + if (converting != None || queue_event) + convertingFlag = 1; + else + convertingFlag = 0; + + ConversionForceOff(); + } + #endif /*FEPSEQ*/