Copyright 1994 NEC Corporation, Tokyo, Japan.

Permission to use, copy, modify, distribute and sell this software
and its documentation for any purpose is hereby granted without
fee, provided that the above copyright notice appear in all copies
and that both that copyright notice and this permission notice
appear in supporting documentation, and that the name of NEC
Corporation not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission. NEC Corporation makes no representations about the
suitability of this software for any purpose. It is provided "as
is" without express or implied warranty.

NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

$Id: uilib.jmn,v 1.1.1.1 2002/10/19 08:27:51 aida_s Exp $ NEC;
UILIBINTRO 3 "4 April 1991"
"̾��"
UILib intro - �桼�������ե������饤�֥�ꥤ��ȥ�
"����"

�桼�������ե������饤�֥��ϡ���ʸ�������ϡ������������Ϥ��б����ơ� ̤����ʸ��������ʸ��������ʸ����֡����ơ�����ɽ���Τ����ʸ���� ��������Τ����ʸ����ʤɤ��ִԤ���饤�֥��Ǥ������ץꥱ�������� �����ϡ��ִԤ��줿����ˤ�ä�ɽ����Ԥ��ޤ������ץꥱ�������ץ� �����ϡ��������ϰʳ��Υȥꥬ���ˤ�ä�(�㤨�Хޥ����ˤ������ʤ�)�⡼ �ɤ����ܤ����椹�뤳�Ȥ�Ǥ��ޤ���

�桼�������ե������饤�֥��Ǥϡ�TTY�١��� ��jrKanjiString�����jrKanjiControl���إ�����ɥ��١����� XLookupKanjiString�����XKanjiControl�������ޤ���

�桼�������ե������饤�֥�����Ѥ�����ˤϰʲ��Υե����뤬ɬ�פ� �ʤ�ޤ���

"��" 3
TTY�١���

"�ؿ�" 20
jrKanjiString, jrKanjiControl
"�إå��ե�����"
canna/jrkanji.h
"�饤�֥��"
libcanna.a, libcanna.so
"��" 3
X������ɥ��١���

"�ؿ�" 20
XLookupKanjiString, XKanjiControl
"�إå��ե�����"
canna/kanji.h
"�饤�֥��"
libXn.a, libXn.so, libcanna.a, libcanna.so
"����"
"jrKanjiString" 20
TTY��������ϡ��ؤǤ����ϡ����ܥ�����ɥ��Ǥ����Ϥʤɰ���Ū�ʥ����ܡ� �����Ϥ��Ф��ƴ���ʸ����ؤ��Ѵ���Ԥ��ޤ���
"jrKanjiControl" 20
jrKanjiString�Ǥ��������ꤵ�줿�ѥ�᥿�ˤ��Ԥ��ޤ���
"XLookupKanjiString" 20
�إ�����ɥ������ƥ�ˤ����ơ������ܡ�������(�������٥��)�δ���ʸ���� �ؤ��Ѵ���Ԥ��ޤ���
"XKanjiControl" 20
XLookupKanjiString�Ǥ��������ꤵ�줿�ѥ�᥿�ˤ��Ԥ��ޤ���
JRKANJISTRING 3 "4 April 1991"
"̾��"
jrKanjiString - ����Ū̾�����ܡ������Ϥ��Ф��ƤΤ��ʴ����Ѵ�
"����"
 #include <canna/jrkanji.h>  int jrKanjiString(context_id, ch, buffer_return, bytes_buffer, kanji_status_return)  int context_id;  int ch;  char *buffer_return;  int bytes_buffer;  jrKanjiStatus *kanji_status_return; 
"����"

jrKanjiString��TTY��������ϡ��ؤǤ����ϡ����ܥ�����ɥ��Ǥ����Ϥʤɡ� ����Ū�ʥ����ܡ������Ϥ��Ф��ƴ���ʸ����ؤ��Ѵ���Ԥ��ؿ��Ǥ���

jrKanjiString�ϡ��������������ɤ�ɽ����륭�����Ϥ����ܸ�ʸ������б� ������ʰץ롼����ǡ����Ϥ��줿������ɽ�������ɤ�ch�ˤ�Ϳ���뤳 �Ȥˤ�ꡤɽ�����٤�ʸ������֤��ޤ���jrKanjiString�������ˤ����ƥ� �޻������Ѵ������ʴ����Ѵ����Ԥ��ޤ���

�ե�����������䡤�������륭���ʤɤΥ����ˤĤ��Ƥϡ������Υ����� ȯ�����륨�������ץ��������� ������ե�����������ι�Ǽ������̤� �����ɤ�jrKanjiString��Ϳ���Ʋ�������

context_id��Ϳ���륳��ƥ����ȼ��̻Ҥϡ��ºݤˤϤ��Τޤޤ��ͤ��� ������櫓�ǤϤʤ���context_id��Ϳ�����륳��ƥ����ȼ��̻Ҥ� �����Ȥ�������ƥ����Ȥ��������졤�Ѥ����뤳�Ȥˤʤ�ޤ����������ä� ���ץꥱ�������ץ���ޤ�jrKanjiString��Ϳ���륳��ƥ����ȼ��̻Ҥ� �Ĥ��Ƥϡ�Ŭ�����ͤ�Ϳ������ɤ������ϥݡ��ȤΥե�����ǥ�������ץ��� Ϳ����Τ�Ŭ���ȹͤ����ޤ�����������0��Ϳ�����������̤ǡ������ƥ�� �ǥե���Ȥǽ�������Ƥ��륳��ƥ����Ȥ��Ѥ����ޤ�������ƥ����Ȥ��� �̤���θ��Ԥ�ʤ����ˤ�0����ꤹ��Τ�Ŭ���Ǥ���

���Ϥ��б����ơ����޻������Ѵ������ʴ����Ѵ�����ַ�̤�ɽ������ɬ�� ������ޤ�����ɽ�����٤���ַ�̤�kanji_status_return����ơ� ���ץꥱ���������֤���ޤ���

���ץꥱ��������kanji_status_return���֤�������ˤ������ä� ��ַ�̤�ɽ�����ʤ���Фʤ�� ����kanji_status_return��jrKanjiStatus���ι�¤�ΤǤ���

jrKanjiStatus��¤�Τϰʲ��Τ褦���������ޤ���

typedef struct {
 unsigned char *echoStr; /* �����륨�����Τ����ʸ���� */
 int length; /* �����륨����ʸ�����Ĺ�� */
 int revPos; /* �����륨����ʸ����Τ���ȿžɽ����ʬ�ؤΥ��ե��å� */
 int revLen; /* �����륨����ʸ����Τ���ȿžɽ����ʬ��Ĺ�� */
 unsigned long info; /* ����¾�ξ��� */
 unsigned char *mode; /* �⡼�ɾ��� */
 struct {
 unsigned char *line; /* ���������ʸ���� */
 int length; /* �������ʸ�����Ĺ�� */
 int revPos; /* �������ʸ����Τ���ȿžɽ����ʬ�ؤΥ��ե��å� */
 int revLen; /* �������ʸ����Τ���ȿžɽ����ʬ��Ĺ�� */
 } gline; /* ��������˴ؤ������ */
} jrKanjiStatus;

���ʴ����Ѵ����Ѥ������ܸ����ϻ��ˤ��Ѵ����оݤȤʤ��ɤߤʤɤ������ ����������ɬ�פ�����ޤ���jrKanjiString�ϥ����륨�����ʤ�ɽ���˴ؤ� �뤳�Ȥϲ���Ԥ鷺������˥����륨��������٤� ʸ�����jrKanjiStatus��¤�Τ��Ѥ��ƥ��ץꥱ�������¦���֤��ޤ���

�Ѵ������ꤹ��ޤǤϡ����޻������Ѵ�����Ƥ���ʸ���䡤�Ѵ�����ʸ���� �ɡ������륨�������٤�(EUC)ʸ����echoStr���Фˤ���֤���� �������ΤȤ��������륨����ʸ�����Ĺ������С���ɽ���� ���ϰ��֤�Ĺ��(�Х���ñ��)���� ���줾�졤length���С�revPos��revLen���Фˤ��֤���ޤ����� ���륨�������٤�ʸ����Τ���ΥХåե���jrKanjiString�ˤ�äƼ�ưŪ�� ���ݤ���ޤ����������ΰ���ɤߤȤ�Τߤ��Ѥ�����٤��Ǥ��ꡤ�����ΰ� ��ʸ����������ǤϤ����ޤ���

�����륨�������٤�ʸ�����ʤ�����length���Фˣ����֤�ޤ���

�����륨�������٤����Ƥ������jrKanjiString�θƽФ��λ����Ѥ��ʤ� ���(�㤨�Х���ȥ���ʸ���������졤���Υ�����̵���Ǥ��ä� ���ʤ�)��length���Ф�-1���֤�ޤ���

�⡼�ɤ��ѹ��䡤��������˴ؤ�������̵ͭ�ϡ�info���Фˤ�ä� �Ϥ���ޤ���info���Ф�KanjiModeInfo�ӥåȤ�on�� ����С�mode�˿������⡼�ɤ���ʸ�����֤���ޤ���info�� ��Ф�KanjiGLineInfo�ӥåȤ�on�Ǥ���С�gline��¤�Τ˸�������� �ξ�����Ǽ����Ƥ��ޤ���

gline��¤�Τ�line���Фˤϸ������ɽ���Τ����ʸ������ ����ޤ���gline��¤�Τ�line,revPos,revLen�γƥ��Фϡ��� �����ʸ����Τ��줾�졤Ĺ������С���ɽ���γ��ϰ��֡���С���ɽ����Ĺ �����֤���ޤ���

�Ѵ���˳��ꤷ��(EUC)ʸ����������ϡ� ����ʸ����buffer_return�ǻ��ꤷ���Хåե��˳�Ǽ���졤����ʸ�� ���Ĺ��(�Х���ñ��)���֤���ޤ������ꤷ��ʸ����̵��������� �ͤ�0�ˤʤ�ޤ�������ʸ������Ǽ����Хåե�buffer_return���礭 ����bytes_buffer�ˤ�Ϳ���ޤ��� ����ʸ�����Ĺ����bytes_buffer����Ĺ�����ˤϡ� ����ʸ����Τ�����bytes_bufferʬ ������buffer_return�˳�Ǽ���졤jrKanjiString������ͤ� ���ơ�bytes_buffer��Ϳ�����ͤ��֤�ޤ���

"�ե����������"

���������ץ���������ȯ�Ԥ���褦�ʥե�����������˴ؤ��Ƥϡ��ե� ����������ˤ�륨�������ץ����������Ѥ��˰ʲ��Υޥ���̾�Ǽ��� ��륳���ɤ�ch�Ȥ���Ϳ���Ʋ�������

"����̾" 12
������
"Nfer" 12
CANNA_KEY_Nfer
"Xfer" 12
CANNA_KEY_Xfer
"Up" 12
CANNA_KEY_Up
"Left" 12
CANNA_KEY_Left
"Right" 12
CANNA_KEY_Right
"Down" 12
CANNA_KEY_Down
"Insert" 12
CANNA_KEY_Insert
"Rollup" 12
CANNA_KEY_Rollup
"Rolldown" 12
CANNA_KEY_Rolldown
"Home" 12
CANNA_KEY_Home
"Help" 12
CANNA_KEY_Help
"S-Nfer" 12
CANNA_KEY_Shift_Nfer
"S-Xfer" 12
CANNA_KEY_Shift_Xfer
"S-Up" 12
CANNA_KEY_Shift_Up
"S-Left" 12
CANNA_KEY_Shift_Left
"S-Right" 12
CANNA_KEY_Shift_Right
"S-Down" 12
CANNA_KEY_Shift_Down
"C-Nfer" 12
CANNA_KEY_Control_Nfer
"C-Xfer" 12
CANNA_KEY_Control_Xfer
"C-Up" 12
CANNA_KEY_Control_Up
"C-Left" 12
CANNA_KEY_Control_Left
"C-Right" 12
CANNA_KEY_Control_Right
"C-Down" 12
CANNA_KEY_Control_Down
"F1" 12
CANNA_KEY_F1
"PF1" 12
CANNA_KEY_PF1
"��Ϣ����"
jrKanjiControl(3)
"�����"

���Ͻ����沿�餫�Υ��顼��ȯ���������ϡ����δؿ�������ͤȤ���-1���� ���졤�����ѿ�(char *)jrKanjiError�ˡ����顼��å���������Ǽ����ޤ���

���δؿ��θƽФ��ˤ����ꤷ��ʸ����������ϳ��ꤷ��ʸ����ΥХ��� Ĺ���֤�ޤ���

����ʳ��ξ���0���֤�ޤ���

JRKANJICONTROL 3 "4 April 1991"
"̾��"
jrKanjiControl - jrKanjiString�ǤΥ⡼�ɤ䡤�����������Ԥ�
"����"
 #include <canna/jrkanji.h>  int jrKanjiControl(context_id, request, arg)  int context_id;  int request;  char *arg; 
"����"

jrKanjiControl��context_id�Ǽ�������Ѵ�����ƥ����Ȥ� �ؤ��ơ�request�Ǽ�����������Ԥ��ޤ��������ˤ�äƤϡ������� ȼ����礬���ꡤ���ξ�硤������arg�ˤ�Ϳ���ޤ���

jrKanjiControl�����椵��뵡ǽ�Ȥ��Ƥϰʲ��Σ��Ĥ�����ޤ���

"request̾" 18
��ǽ
"KC_INITIALIZE" 18
���ʴ����Ѵ����������롥
"KC_CHANGEMODE" 18
���ϥ⡼�ɤ��ѹ����롥
"KC_SETWIDTH" 18
�������ɽ���λ���������ꤹ�롥
"KC_FINALIZE" 18
���ʴ����Ѵ��ν�λ������
"KC_SETUNDEFKEYFUNCTION" 18
̤����������Ф��뵡ǽ�������Ԥ���
"KC_SETMODEINFOSTYLE" 18
�⡼�ɾ������ͤ�ɽ�����뤫�ɤ�������ꤹ�롥
"KC_KAKUTEI" 18
�������ʸ�������ꤹ�롥
"KC_KILL" 18
�������ʸ����������롥
"KC_QUERYMODE" 18
���ߤΥ⡼�ɤ��䤤��碌�롥
"KC_SETSERVERNAME" 18
��³���륵���Ф���ꤹ�롥
"KC_SETINITFILENAME" 18
�������ޥ����ե��������ꤹ�롥
"KC_CLOSEUICONTEXT" 18
����ƥ����Ȥ��������롥
"KC_QUERYMAXMODESTR" 18
�⡼��ɽ��ʸ����κ���Ĺ����롥

jrKanjiControl�κ��Ѥϴ���Ū�ˤϥ���ƥ����Ȥǻ��ꤵ�줿��Τ��Ф��Ƥ� �ߺ��Ѥ��ޤ�����������������ν����佪λ�ν����˴ؤ��ƤϤ��θ¤�ǤϤ� ��ޤ���

jrKanjiControl�����ˤ�ä�̤����ʸ����ξ��֤��Ѳ������ꡤ�⡼�ɤξ� �֤��Ѥ�뤳�Ȥ�����ޤ������Τ褦�ʲ�ǽ�����������arg��ʬ���Ѳ��� ��������Ǽ�Ǥ���褦�ʹ�¤�ΤؤΥݥ������Ϥ��ޤ������ι�¤�Τ���� �ϰʲ��Τ褦�ˤʤ�ޤ���

typedef struct {
 int val; /* �Хåե��˳�Ǽ���줿ʸ�����Ĺ�����֤� */
 unsigned char *buffer; /* ����ʸ������Ǽ���뤿��ΥХåե���Ϳ���� */
 int bytes_buffer; /* �嵭�ΥХåե����礭����Ϳ���� */
 jrKanjiStatus *ks; /* ̤����ʸ����ξ�����Ǽ���빽¤�ΤؤΥݥ��� */
} jrKanjiStatusWithValue;

jrKanjiControl�Τ��줾��ε�ǽ�μ¹ԤΤ������ϰʲ����̤�Ǥ���

"(1)" 6
KC_INITIALIZE - ���ʴ����Ѵ��ν����

KC_INITIALIZE��request���ǻ��ꤹ�뤳�Ȥˤ�ꡤ���ʴ����Ѵ��ν�� ����Ԥ��ޤ���arg�ˤ�warning��å������� ��Ǽ���뤿���(char **)�����ѿ��ؤΥݥ����ޤ���NULL����ꤷ�ޤ����� �����ν����ϴ���Ū�ˤ�jrKanjiString(3)���ǽ�˸ƤФ줿���˼�ưŪ�˹Ԥ� ��ޤ�����jrKanjiControl���Ѥ��ƽ�������� ���Ȥˤ�ꡤjrKanjiString(3)�Ǥν���������ϹԤ��ʤ��ʤ�ޤ���

jrKanjiString(3)�λ��Ѥ���Ω�ä�jrKanjiControl���Ѥ��Ƥ��ʴ����Ѵ��˴� ���������Ԥ����ʤɤϡ������Ѵ��ν������Ԥ�ɬ�פ�����ޤ���

���ェλ���ˤ�jrKanjiControl������ͤȤ���0���֤ꡤ�۾ェλ���ˤ�-1�� �֤�ޤ���

KC_INITIALIZE��Ԥä���硤���顼�ȤޤǤϤ����ʤ��Ȥⲿ�餫��warning�� ȯ�����뤳�Ȥ�����ޤ���warning��ȯ����������arg�ˤ�Ϳ����줿 �ѿ����Ф���warningʸ���������ؤΥݥ�������Ǽ���� �֤���ޤ���warning���ʤ��Ȥ���NULL����Ǽ�����֤���ޤ��� (��)

 int res; /* ���顼���֤äƤ������������ */
 char **warning;
 .....
 res = jrKanjiControl(0, KC_INITIALIZE, &warning);
 if (warning) {
 char **p;

 for (p = warning ; *p ; p++) {
 fprintf(stderr, "%s\n", *p);
 }
 }

�裳�������֤����warning��å������ϥ饤�֥���������malloc����ޤ��� ����ϡ�����KC_INITIALIZE��KC_FINALIZE���Ԥ�줿���˳�������ޤ������� �ꥱ�������ץ���ޤ������free���ƤϤ����ޤ���warning�Ϻ��ΤȤ� �����64��å������˸��ꤵ��ޤ�������ʾ�Υ�å��������ڼΤƤ��ޤ���

��å������˴ޤޤ���ǽ���Τ���warning�ˤϰʲ��Τ�Τ�����ޤ���

"��" 3
�������ޥ����ե����뤬�����ƥ�Τ�Τ�ޤ�Ƥ��٤����ѤǤ��ʤ���
"��" 3
�������ޥ����ե�����˥����å������顼�����롥
"��" 3
���޻������Ѵ��������ѤǤ��ʤ���
"��" 3
���ʴ����Ѵ��������ѤǤ��ʤ���
"��" 3
���ʴ����Ѵ������Ф���³�Ǥ��ʤ���

�裳�����Ȥ���NULL����ꤷ�����warning��å������ϼΤƤ��ޤ���

"(2)" 6
KC_CHANGEMODE - ���ϥ⡼�ɤ��ѹ�

���ϥ⡼�ɤ��ץꥱ����������ѹ����ޤ���request�� ��ʬ�ˤ�KC_CHANGEMODE����ꤷ��arg��jrKanjiStatusWithValue��¤�� ����ꤷ�Ʋ�������jrKanjiStatusWithValue��¤�Τ�val���Фˤƥ⡼ ���ֹ����ꤹ�뤳�Ȥˤ�����ܸ�⡼�ɤ��ڤ��ؤ��ޤ����⡼���ֹ�ϰ� ���Υޥ���Ǽ�����ޤ���

"�ޥ����ֹ�" 24
�⡼��
"CANNA_MODE_AlphaMode" 24
����ե��٥åȥ⡼��
"CANNA_MODE_HenkanMode" 24
�Ѵ����ϥ⡼��
"CANNA_MODE_KigoMode" 24
�������ϥ⡼��
"CANNA_MODE_ZenHiraKakuteiMode" 24
���ѤҤ餬�ʳ������ϥ⡼��
"CANNA_MODE_ZenKataKakuteiMode" 24
���ѥ������ʳ������ϥ⡼��
"CANNA_MODE_HanKataKakuteiMode" 24
Ⱦ�ѥ������ʳ������ϥ⡼��
"CANNA_MODE_ZenAlphaKakuteiMode" 24
���ѥ���ե��٥åȳ������ϥ⡼��
"CANNA_MODE_HanAlphaKakuteiMode" 24
Ⱦ�ѥ���ե��٥åȳ������ϥ⡼��
"CANNA_MODE_HexMode" 24
16�ʥ��������ϥ⡼��
"CANNA_MODE_BushuMode" 24
�������ϥ⡼��
"CANNA_MODE_TorokuMode" 24
ñ����Ͽ�⡼��

���ε�ǽ�ˤ��⡼�ɤ��ѹ�����ȥ⡼��̾��Ϥ�Ȥ���¿����ɽ�����Ѳ��� �����ޤ���ɽ�����ѹ���arg�Ȥ��ƻ��ꤷ��jrKanjiStatusWithValue��¤�Τ� ���֤���ޤ��� (��)

 jrKanjiStatus ks;
 jrKanjiStatusWithValue ksv;
 unsigned char buf[SOMESIZE];
 .....
 ksv.ks = &ks;
 ksv.buffer = buf;
 ksv.bytes_buffer = SOMESIZE;
 ksv.val = CANNA_MODE_HexMode;

 jrKanjiControl(context, KC_CHANGEMODE, &ksv);
 len = ksv.val;
 .....
 /* ̤����ʸ��������ʸ����ξ���ksv�ˤ���֤���ޤ��� */
"(3)" 6
KC_SETWIDTH - �������ɽ���Τ�����������

��������Τ�����Ѥ������ΰ�Υ���������ꤷ�ޤ��������������ϥ� ��ե��٥å�ʸ�����뤤��Ⱦ�ѥ������ʣ�ʸ����ʸ�����Ǥ��ꡤ���Ѵ����ϣ� ��������뤳�Ȥˤʤ�ޤ����������ɽ���Τ�������� ���ꤹ�뤿���request��ʬ�˻��ꤹ���ͤ�KC_SETWIDTH�ǡ� ���ΤȤ�arg�˥���������ꤷ�ޤ��� (��)

 jrKanjiControl(0, KC_SETWIDTH, (char *)60);
"(4)" 6
KC_FINALIZE - ���ʴ����Ѵ��ν�λ������

�ץ�����λ����ʤɤζ��̤Ǥ��ʴ����Ѵ��⽪λ���뤳�Ȥ���ꤷ�ޤ��� ���ʴ����Ѵ�������λ���������ɬ�����ν�����ԤäƲ������������ˤ� ���äƺ��ޤdzؽ��������Ƥ��ե��������Ͽ����ޤ���request��ʬ�� ��KC_FINALIZE����ꤷ�ޤ���

���ェλ����0���۾ェλ����-1������ͤȤ����֤�ޤ���

KC_FINALIZE��Ԥä���硤���顼�ȤޤǤ����ʤ��Ȥⲿ�餫��warning��ȯ�� ���뤳�Ȥ�����ޤ���warning��ȯ����������arg�ˤ�Ϳ����줿 �ѿ���warningʸ���������ؤΥݥ�������Ǽ�����֤���ޤ���warning���� �����ˤ�NULL�ݥ�������Ǽ�����֤���ޤ��� (��)


 int res; /* ���顼���֤���������� */
 char **warning;
 .....
 res = jrKanjiControl(0, KC_FINALIZE, &warning);
 if (warning) {
 char **p;

 for (p = warning ; *p ; p++) {
 fprintf(stderr, "%s\n", *p);
 }
 }

�裳�������֤����warning��å������ϡ��饤�֥���������malloc����� ��������ϡ�����KC_INITIALIZE��KC_FINALIZE���Ԥ�줿���˳�������ޤ��� ���ץꥱ�������ץ���ޤ������free���ƤϤ����ޤ���

warning�Ϻ��ΤȤ������64��å������˸��ꤵ��ޤ�������ʾ�Υ�å��� �����ڼΤƤ��ޤ���

��å������˴ޤޤ���ǽ���Τ���warning�ˤϼ��Τ�Τ�����ޤ���

"��" 3
��������ޥ���ȤǤ��ʤ���

�裳�����Ȥ���NULL����ꤷ����硤warning��å������ϼΤƤ��ޤ���

"(5)" 6
KC_SETUNDEFKEYFUNCTION - ̤����������Ф��뵡ǽ������

�ɤߤ����Ϥ��Ƥ�����֤�C-t���Ǥä��Ȥ��Τ褦��̤������������Ϥ����� �˼�����������ꤷ�ޤ���̤����������б����ƹԤ�������Ȥ��Ƥϰ� ���ν���������ޤ���

"�ޥ���̾" 12
����
"kc_normal" 12
�ӡ���
"kc_through" 12
���ץꥱ�������ץ������Ϥ�
"kc_kakutei" 12
���ꤷ���ץꥱ�������ץ������Ϥ�
"kc_kill" 12
�õ���ץꥱ�������ץ������Ϥ�

kc_normal����ꤷ����硤�����ѿ�jrBeepFunc�����ꤵ�줿�ؿ���̤������� ���ϻ��˥饤�֥��ˤ�äƼ�ưŪ�˸ƤӽФ���ޤ���jrBeepFunc���ͤ����� ���ʤ����ˤ�(jrBeepFunc == NULL�ξ��ˤ�)���ⵯ����ޤ��� (��)

 extern (*jrBeepFunc)(), beep();

 jrBeepFunc = beep;
 jrKanjiControl(0, KC_SETUNDEFKEYFUNCTION, kc_normal);
"(6)" 6
KC_SETMODEINFOSTYLE - �⡼�ɾ����ɽ��

�⡼�ɾ����ʸ����ǤϤʤ��ӥåȥޥåפʤɤΥǡ�����ɽ����������礬�� ��ޤ������Τ褦�ʾ��ˤϥ⡼�ɾ���Ȥ��ƿ��ͥǡ������֤äƤ���Ƚ��� �����䤹���ʤ�ޤ���jrKanjiControl��KC_SETMODEINFOSTYLE�� ���ꤷ��arg�ˣ����Ϥ����Ȥˤ�äƤ���ʸ��jrKanjiStatus��¤�� ��mode���Фˤϥ⡼�ɤ�ɽ�����ͤ�'@'(0x40)��ä�����ʸ�����֤� ���褦�ˤʤ�ޤ����⡼�ɤ�ɽ�����ͤ��Ѵ�������ˤ��֤äƤ���ʸ���� ����'@'(0x40)������ޤ����⡼�ɤ�ɽ�����ͤˤĤ��Ƥ����ϥ⡼�ɤ� �ѹ�((2)KC_CHANGEMODE)�Τ������Ȥ��Ʋ�������

"(7)" 6
KC_KAKUTEI��(8) KC_KILL - �������ʸ���������

�������ʸ������餫���Թ��������������礬����ޤ�������������� �������ʸ��������ʸ����Ȥ��Ƽ�����Ǥ����������������������Τ� �Ƥ��ޤäƤ���������������礬����ޤ������ꤹ�� ���ˤ�jrKanjiControl�ˤ�KC_KAKUTEI����ꤷ���������� ���ˤ�KC_KILL����ꤷ�ޤ���

���ν�����ɽ���˱ƶ���Ϳ����Τ��裳�����ˤ�jrKanjiStatusWithValue��¤ �Τ���ꤷ�ʤ���Фʤ�ޤ��� (��)

 jrKanjiStatusWithValue ksv;
 jrKanjiStatus ks;
 unsigned char buf[SOMESIZE];
 .....
 ksv.ks = &ks;
 ksv.buffer = buf;
 ksv.bytes_buffer = SOMESIZE;

 jrKanjiControl(context, KC_KAKUTEI, &ksv);
 len = ksv.val;
 .....
"(9)" 6
KC_QUERYMODE - �⡼�ɤ��䤤��碌

���ߤΥ⡼�ɤ��䤤��碌��ˤ�jrKanjiControl��KC_QUERYMODE����ꤷ�ޤ���

�裳�����ˤϥ⡼��ʸ������Ǽ���뤿���ʸ������Υݥ�������ꤷ�ޤ��� �⡼��ʸ����ϥ̥�ʸ���ǽ����ʸ����Ǥ��������˿��ͤ��֤�褦�ˤ���� ��jrKanjiControl��KC_SETMODEINFOSTYLE����ꤷ�ƥ⡼��ʸ����Υ������� ���ѹ����Ƥ����ޤ��� (��)

 char currentMode[MAXMODELEN];
 .....
 jrKanjiControl(0, KC_QUERYMODE, currentMode);
 .....
"(10)" 6
KC_SETSERVERNAME - �����Фλ���

���ʴ����Ѵ������ФȤ��ƤɤΥ����Ф�Ȥ������ץꥱ�������ץ���� ��λ���뤳�Ȥʤ������ؤ��뤳�Ȥ���ǽ�Ǥ������ʴ����Ѵ������ФȤ����� ³����٤������Ф���ꤹ��ˤ�jrKanjiControl��KC_SETSERVERNAME����ꤷ �ޤ����裳�����ˤ���³������������̾����ꤷ�ޤ���

"(11)" 6
KC_SETINITFILENAME - �������ޥ����ե�����λ���

�������ޥ����ե�������ץꥱ�������ץ����¦�����ѹ����뤳�Ȥ��� ���ޤ����������ޥ����ե�������ѹ���jrKanjiControl�� �裲������KC_SETINITFILENAME����ꤷ���裳�����˥ե�����̾ʸ�������� ���뤳�Ȥˤ��Ԥ��ޤ������ν�����Ԥ�����KC_INITIALIZE����Ω�äƼ� �Ԥ��Ƥ����ʤ���Фʤ�ޤ��� (��)

 char *inifile = "app-own.canna"
 .....
 jrKanjiControl(0, KC_SETINITFILENAME, initfile);
 .....
"(12)" 6
KC_CLOSEUICONTEXT - ����ƥ����ȤΥ�����

�Ѵ�����ƥ����Ȥ�ɽ������ƥ�����ID��Ǥ�դ������������Ƥ뤳�Ȥ��Ǥ� �ޤ������ޤǻȤ��Ƥ��ʤ� ����ƥ�����ID��jrKanjiString���뤤��jrKanjiControl��Ϳ���뤳�Ȥ���ǽ �Ǥ��ꡤ���ξ�硤���Υ���ƥ������ѤΥ��˥���饤�����Ԥ��ɬ�פʥ� ��꤬���ݤ���ޤ���

����ޤǻ��Ѥ��Ƥ������ϥݡ��Ȥ��Ȥ��ʤ��ʤä����ˡ����Υݡ��Ȥ˳� �����ƤƻȤäƤ�������ƥ�����ID�Ѥ˳��ݤ��줿����� ��������ˤ�jrKanjiControl���裲������KC_CLOSEUICONTEXT����ꤷ�ƸƤ� �Ф��ޤ���

���ν�����ɽ�����Ѳ���Ȥ�ʤ��Τ��裳�����ˤ�jrKanjiStatusWithValue�� ¤�Τ�Ϳ���ޤ��� (��)

 jrKanjiStatusWithValue ksv;
 jrKanjiStatus ks;
 unsigned char buf[SOMESIZE];
 .....
 ksv.ks = &ks;
 ksv.buffer = buf;
 ksv.bytes_buffer = SOMESIZE;

 jrKanjiControl(0, KC_CLOSEUICONTEXT, &ksv);
 .....
"(13)" 6
KC_QUERYMAXMODESTR - �⡼��ɽ��ʸ����κ���Ĺ����롥

������ե�����ˤƥ⡼��ɽ��ʸ�����������ޥ����Ǥ��ޤ������������ޥ� �����줿��̥⡼��ɽ��ʸ����ˤɤ������ɽ���ΰ����ݤ��뤫��Ĵ�٤�ɬ �פ������礬����ޤ���jrKanjiControl���裲������KC_QUERYMAXMODESTR�� ���ꤷ�ƸƤӽФ����Ȥˤ�ꡤ�⡼��ɽ��ʸ����Ȥ��Ʋ������ɬ�פ����֤� �ͤȤ����֤���ޤ��������Ǹ��������Ȥ�Ⱦ�ѱѿ�ʸ����ʸ�������Ȥ��� �Ȥ����ͤ����ޤ���

�裳�������Ѥ����ʤ��Τǥ��ߡ��ͤȤ���0��Ϳ���ޤ��� (��)

 int max_mode_columns;
 .....
 max_mode_columns = jrKanjiControl(0, KC_QUERYMAXMODESTR, 0);
 .....
@(#)kanji.man 1.5 89/06/30 09:13:01
XLookupKanjiString 3K "1 September 1988" "X Version 11"
̾��
XLookupKanjiString - �����ܡ������Ϥδ���ʸ����ؤ��Ѵ�
���ҷ���
#include <X11/Xlib.h>
#include <X11/kanji.h>

int XLookupKanjiString(event_struct, buffer_return, bytes_buffer, keysym_return, status_return, kanji_status_return) XKeyEvent *event_struct; char *buffer_return; int bytes_buffer; KeySym *keysym_return; XComposeStatus *status_return; XKanjiStatus *kanji_status_return;

����

event_struct 16
�������٥�Ȥ���ꤷ�ޤ���
buffer_return 16
�Ѵ���������ʸ�����֤���ޤ���
bytes_buffer 16
�Хåե���Ĺ������ꤷ�ޤ���
keysym_return 16
��������ܥ���֤��ޤ���NULL����ꤹ�뤳�Ȥ�Ǥ��ޤ���
status_return 16
XCompose��¤�ΤؤΥݥ�������ꤷ�ޤ���
kanji_status_return 16
���ʴ����Ѵ����ͻҤ��֤���ޤ���
����

XLookupKanjiString�ϡ��������٥�Ȥ����ܸ�ʸ����� �б�������ʰץ롼����ǡ� �������٥�Ȥν��������ӥåȤ���Ѥ��ƥ��եȡ���å��� ����ȥ������ν�����Ԥ��ޤ���

XLookupKanjiString�ˤ�ä�8bit����ե��٥å�ʸ�� �ڤ�16bit���ܸ�ʸ�����갷�����Ȥ��Ǥ��ޤ���

����ե��٥å�ʸ���μ�갷���ˤĤ��Ƥϡ� XLookupKanjiString��XLookupString��Ʊ�ͤ�ư��ˤʤ�ޤ���

���ܸ�ʸ���μ�갷���ˤĤ��Ƥϡ� ���δؿ��������ˤ����ƥ��޻������Ѵ��� ���ʴ����Ѵ����Ԥ��ޤ��� ���ܸ�����ϻ���XKanjiStatus��¤�Τ��Ѥ����ޤ���XKanjiStatus��¤�Τ� �ʲ��Τ褦���������ޤ���

 typedef struct _XKanjiStatus {
 unsigned char *echoStr; /* local echo string */
 int length; /* length of echo string */
 int revPos; /* reverse position */
 int revLen; /* reverse length */
.mc \(br
 unsigned long info; /* other informations */
 unsigned char *mode; /* mode information */
 struct {
 unsigned char *line; /* a grance of Kanji characters */
 int length; /* length of it */
 int revPos; /* reverse position of it */
 int revLen; /* reverse length of it */
 } gline; /* a grancing line information */
.mc
 } XKanjiStatus;

.mc \(br
 #define KanjiModeInfo 01
 #define KanjiGLineInfo 02
.mc

���ʴ����Ѵ����Ѥ������ܸ����ϻ��ˤ��Ѵ����оݤȤʤ��ɤߤʤɤ� �����륨��������ɬ�פ�����ޤ���XLookupKanjiString�ϥ����� �������ʤ�ɽ���˴ؤ��뤳�Ȥϲ���Ԥ鷺������˥����륨���� ����٤�ʸ�����XKanjiStatus��¤�Τ��Ѥ��� ���ץꥱ�������¦���֤��ޤ���

�Ѵ������ꤹ��ޤǤϡ����޻������Ѵ�����Ƥ���ʸ���䡢 �Ѵ�����ʸ���ʤɡ������륨�������٤�(EUC) ʸ����echoStr���Ф� ����֤���ޤ������ΤȤ��������륨����ʸ����� Ĺ������С���ɽ���γ��ϰ��֤�Ĺ���ʥХ���ñ�̡ˤ��� ���줾�졢length���С�revPos��revLen���Фˤ� �֤���ޤ��� �����륨�������٤�ʸ����Τ���ΥХåե���XLookupKanjiString�� ��äƼ�ưŪ�˳��ݤ���ޤ����������ΰ���ɤ߼��Τߤ��Ѥ�����٤��Ǥ��ꡢ �����ΰ��ʸ����������ǤϤ����ޤ���

�����륨�������٤�ʸ����̵������length���Фˣ����֤�ޤ���

�����륨�������٤����Ƥ������XLookupKanjiString�θƤӽФ��ΤȤ��� �Ѥ��ʤ������㤨�Х��եȥ����������줿���ʤɡˤ�length���Ф� �ݣ����֤�ޤ��� .mc \(br

�⡼�ɤ��ѹ��䡢��������˴ؤ�������̵ͭ�ϡ�info���Фˤ�ä��Ϥ��� �ޤ���info���Ф�KanjiModeInfo�ӥåȤ�on�Ǥ���С�mode�˿������⡼�� ����ʸ�����֤���ޤ���info���Ф�KanjiGLineInfo�ӥåȤ�on�Ǥ���С� gline��¤�Τ˸���������ξ�����Ǽ����Ƥ��ޤ���

gline��¤�Τ�line���Фˤϸ������ɽ���Τ����ʸ�����֤���ޤ��� gline��¤�Τ�line,revPos,revLen�γƥ��Фϡ��������ʸ����Τ��줾�졢 Ĺ������С���ɽ���γ��ϰ��֡���С���ɽ����Ĺ�����֤���ޤ��� .mc

�Ѵ���˳��ꤷ��(EUC)ʸ����������ϡ� ����ʸ����buffer_return�˳�Ǽ���졢 ����ʸ�����Ĺ���ʥХ���ñ�̡ˤ����δؿ�������ͤȤ����֤���ޤ��� ���ꤷ��ʸ����̵����������ͤϣ��ˤʤ�ޤ���

XKANJICONTROL 3 "4 April 1991"
"̾��"
XKanjiControl - XLookupKanjiString�ǤΥ⡼�ɤ䡤�����������Ԥ�
"����"
 #include <X11/kanji.h>  int XKanjiControl(dpy, win, request, arg)  Display dpy;  Window win;  int request;  char *arg; 
"����"

XKanjiControl��dpy, win�Ǽ�����륦����ɥ��ˤ��������ܸ����Ϥ� �ؤ��ơ�request�Ǽ�����������Ԥ��ޤ��������ˤ�äƤϡ������� ȼ����礬���ꡤ���ξ�硤������arg�ˤ�Ϳ���ޤ���

XKanjiControl�����椵��뵡ǽ�Ȥ��Ƥϰʲ�������ޤ���

"request̾" 18
��ǽ
"KC_INITIALIZE" 18
���ʴ����Ѵ����������롥
"KC_CHANGEMODE" 18
���ϥ⡼�ɤ��ѹ����롥
"KC_SETWIDTH" 18
�������ɽ���λ���������ꤹ�롥
"KC_FINALIZE" 18
���ʴ����Ѵ��ν�λ������
"KC_SETUNDEFKEYFUNCTION" 18
̤����������Ф��뵡ǽ�������Ԥ���
"KC_SETMODEINFOSTYLE" 18
�⡼�ɾ������ͤ�ɽ�����뤫�ɤ�������ꤹ�롥
"KC_KAKUTEI" 18
�������ʸ�������ꤹ�롥
"KC_KILL" 18
�������ʸ����������롥
"KC_QUERYMODE" 18
���ߤΥ⡼�ɤ��䤤��碌�롥
"KC_SETSERVERNAME" 18
��³���륵���Ф���ꤹ�롥
"KC_SETINITFILENAME" 18
�������ޥ����ե��������ꤹ�롥
"KC_CLOSEUICONTEXT" 18
����ƥ����Ȥ��������롥
"KC_QUERYMAXMODESTR" 18
�⡼��ɽ��ʸ����κ���Ĺ����롥

XKanjiControl�κ��Ѥϴ���Ū�ˤ�dpy, win�ǻ��ꤵ�줿������ɥ��� �����ܸ����Ϥ��Ф��Ƥ� �ߺ��Ѥ��ޤ�����������������ν����佪λ�ν����˴ؤ��ƤϤ��θ¤�ǤϤ� ��ޤ���

XKanjiControl�����ˤ�ä�̤����ʸ����ξ��֤��Ѳ������ꡤ�⡼�ɤξ� �֤��Ѥ�뤳�Ȥ�����ޤ������Τ褦�ʲ�ǽ�����������arg��ʬ���Ѳ��� ��������Ǽ�Ǥ���褦�ʹ�¤�ΤؤΥݥ������Ϥ��ޤ������ι�¤�Τ���� �ϰʲ��Τ褦�ˤʤ�ޤ���

typedef struct {
 int val; /* �Хåե��˳�Ǽ���줿ʸ�����Ĺ�����֤� */
 unsigned char *buffer; /* ����ʸ������Ǽ���뤿��ΥХåե���Ϳ���� */
 int bytes_buffer; /* �嵭�ΥХåե����礭����Ϳ���� */
 XKanjiStatus *ks; /* ̤����ʸ����ξ�����Ǽ���빽¤�ΤؤΥݥ��� */
} XKanjiStatusWithValue;

XKanjiControl�Τ��줾��ε�ǽ�μ¹ԤΤ������ϰʲ����̤�Ǥ���

"(1)" 6
KC_INITIALIZE - ���ʴ����Ѵ��ν����

KC_INITIALIZE��request���ǻ��ꤹ�뤳�Ȥˤ�ꡤ���ʴ����Ѵ��ν�� ����Ԥ��ޤ���arg�ˤ�warning��å������� ��Ǽ���뤿���(char **)�����ѿ��ؤΥݥ����ޤ���NULL����ꤷ�ޤ����� �����ν����ϴ���Ū�ˤ�XKanjiString(3)���ǽ�˸ƤФ줿���˼�ưŪ�˹Ԥ� ��ޤ�����XKanjiControl���Ѥ��ƽ�������� ���Ȥˤ�ꡤXKanjiString(3)�Ǥν���������ϹԤ��ʤ��ʤ�ޤ���

XKanjiString(3)�λ��Ѥ���Ω�ä�XKanjiControl���Ѥ��Ƥ��ʴ����Ѵ��˴� ���������Ԥ����ʤɤϡ������Ѵ��ν������Ԥ�ɬ�פ�����ޤ���

���ェλ���ˤ�XKanjiControl������ͤȤ���0���֤ꡤ�۾ェλ���ˤ�-1�� �֤�ޤ���

KC_INITIALIZE��Ԥä���硤���顼�ȤޤǤϤ����ʤ��Ȥⲿ�餫��warning�� ȯ�����뤳�Ȥ�����ޤ���warning��ȯ����������arg�ˤ�Ϳ����줿 �ѿ����Ф���warningʸ���������ؤΥݥ�������Ǽ���� �֤���ޤ���warning���ʤ��Ȥ���NULL����Ǽ�����֤���ޤ��� (��)

 int res; /* ���顼���֤äƤ������������ */
 char **warning;
 .....
 res = XKanjiControl(dpy, win, KC_INITIALIZE, &warning);
 if (warning) {
 char **p;

 for (p = warning ; *p ; p++) {
 fprintf(stderr, "%s\n", *p);
 }
 }

��4�������֤����warning��å������ϥ饤�֥���������malloc����ޤ��� ����ϡ�����KC_INITIALIZE��KC_FINALIZE���Ԥ�줿���˳�������ޤ������� �ꥱ�������ץ���ޤ������free���ƤϤ����ޤ���warning�Ϻ��ΤȤ� �����64��å������˸��ꤵ��ޤ�������ʾ�Υ�å��������ڼΤƤ��ޤ���

��å������˴ޤޤ���ǽ���Τ���warning�ˤϰʲ��Τ�Τ�����ޤ���

"��" 3
�������ޥ����ե����뤬�����ƥ�Τ�Τ�ޤ�Ƥ��٤����ѤǤ��ʤ���
"��" 3
�������ޥ����ե�����˥����å������顼�����롥
"��" 3
���޻������Ѵ��������ѤǤ��ʤ���
"��" 3
���ʴ����Ѵ��������ѤǤ��ʤ���
"��" 3
���ʴ����Ѵ������Ф���³�Ǥ��ʤ���

��4�����Ȥ���NULL����ꤷ�����warning��å������ϼΤƤ��ޤ���

"(2)" 6
KC_CHANGEMODE - ���ϥ⡼�ɤ��ѹ�

���ϥ⡼�ɤ��ץꥱ����������ѹ����ޤ���request�� ��ʬ�ˤ�KC_CHANGEMODE����ꤷ��arg��XKanjiStatusWithValue��¤�� ����ꤷ�Ʋ�������XKanjiStatusWithValue��¤�Τ�val���Фˤƥ⡼ ���ֹ����ꤹ�뤳�Ȥˤ�����ܸ�⡼�ɤ��ڤ��ؤ��ޤ����⡼���ֹ�ϰ� ���Υޥ���Ǽ�����ޤ���

"�ޥ����ֹ�" 24
�⡼��
"CANNA_MODE_AlphaMode" 24
����ե��٥åȥ⡼��
"CANNA_MODE_HenkanMode" 24
�Ѵ����ϥ⡼��
"CANNA_MODE_KigoMode" 24
�������ϥ⡼��
"CANNA_MODE_ZenHiraKakuteiMode" 24
���ѤҤ餬�ʳ������ϥ⡼��
"CANNA_MODE_ZenKataKakuteiMode" 24
���ѥ������ʳ������ϥ⡼��
"CANNA_MODE_HanKataKakuteiMode" 24
Ⱦ�ѥ������ʳ������ϥ⡼��
"CANNA_MODE_ZenAlphaKakuteiMode" 24
���ѥ���ե��٥åȳ������ϥ⡼��
"CANNA_MODE_HanAlphaKakuteiMode" 24
Ⱦ�ѥ���ե��٥åȳ������ϥ⡼��
"CANNA_MODE_HexMode" 24
16�ʥ��������ϥ⡼��
"CANNA_MODE_BushuMode" 24
�������ϥ⡼��
"CANNA_MODE_TorokuMode" 24
ñ����Ͽ�⡼��

���ε�ǽ�ˤ��⡼�ɤ��ѹ�����ȥ⡼��̾��Ϥ�Ȥ���¿����ɽ�����Ѳ��� �����ޤ���ɽ�����ѹ���arg�Ȥ��ƻ��ꤷ��XKanjiStatusWithValue��¤�Τ� ���֤���ޤ��� (��)

 XKanjiStatus ks;
 XKanjiStatusWithValue ksv;
 unsigned char buf[SOMESIZE];
 .....
 ksv.ks = &ks;
 ksv.buffer = buf;
 ksv.bytes_buffer = SOMESIZE;
 ksv.val = CANNA_MODE_HexMode;

 XKanjiControl(dpy, win, KC_CHANGEMODE, &ksv);
 len = ksv.val;
 .....
 /* ̤����ʸ��������ʸ����ξ���ksv�ˤ���֤���ޤ��� */
"(3)" 6
KC_SETWIDTH - �������ɽ���Τ�����������

��������Τ�����Ѥ������ΰ�Υ���������ꤷ�ޤ��������������ϥ� ��ե��٥å�ʸ�����뤤��Ⱦ�ѥ������ʣ�ʸ����ʸ�����Ǥ��ꡤ���Ѵ����ϣ� ��������뤳�Ȥˤʤ�ޤ����������ɽ���Τ�������� ���ꤹ�뤿���request��ʬ�˻��ꤹ���ͤ�KC_SETWIDTH�ǡ� ���ΤȤ�arg�˥���������ꤷ�ޤ��� (��)

 XKanjiControl(dpy, win, KC_SETWIDTH, (char *)60);
"(4)" 6
KC_FINALIZE - ���ʴ����Ѵ��ν�λ������

�ץ�����λ����ʤɤζ��̤Ǥ��ʴ����Ѵ��⽪λ���뤳�Ȥ���ꤷ�ޤ��� ���ʴ����Ѵ�������λ���������ɬ�����ν�����ԤäƲ������������ˤ� ���äƺ��ޤdzؽ��������Ƥ��ե��������Ͽ����ޤ���request��ʬ�� ��KC_FINALIZE����ꤷ�ޤ���

���ェλ����0���۾ェλ����-1������ͤȤ����֤�ޤ���

KC_FINALIZE��Ԥä���硤���顼�ȤޤǤ����ʤ��Ȥⲿ�餫��warning��ȯ�� ���뤳�Ȥ�����ޤ���warning��ȯ����������arg�ˤ�Ϳ����줿 �ѿ���warningʸ���������ؤΥݥ�������Ǽ�����֤���ޤ���warning���� �����ˤ�NULL�ݥ�������Ǽ�����֤���ޤ��� (��)


 int res; /* ���顼���֤���������� */
 char **warning;
 .....
 res = XKanjiControl(dpy, win, KC_FINALIZE, &warning);
 if (warning) {
 char **p;

 for (p = warning ; *p ; p++) {
 fprintf(stderr, "%s\n", *p);
 }
 }

��4�������֤����warning��å������ϡ��饤�֥���������malloc����� ��������ϡ�����KC_INITIALIZE��KC_FINALIZE���Ԥ�줿���˳�������ޤ��� ���ץꥱ�������ץ���ޤ������free���ƤϤ����ޤ���

warning�Ϻ��ΤȤ������64��å������˸��ꤵ��ޤ�������ʾ�Υ�å��� �����ڼΤƤ��ޤ���

��å������˴ޤޤ���ǽ���Τ���warning�ˤϼ��Τ�Τ�����ޤ���

"��" 3
��������ޥ���ȤǤ��ʤ���

��4�����Ȥ���NULL����ꤷ����硤warning��å������ϼΤƤ��ޤ���

"(5)" 6
KC_SETUNDEFKEYFUNCTION - ̤����������Ф��뵡ǽ������

�ɤߤ����Ϥ��Ƥ�����֤�C-t���Ǥä��Ȥ��Τ褦��̤������������Ϥ����� �˼�����������ꤷ�ޤ���̤����������б����ƹԤ�������Ȥ��Ƥϰ� ���ν���������ޤ���

"�ޥ���̾" 12
����
"kc_normal" 12
�ӡ���
"kc_through" 12
���ץꥱ�������ץ������Ϥ�
"kc_kakutei" 12
���ꤷ���ץꥱ�������ץ������Ϥ�
"kc_kill" 12
�õ���ץꥱ�������ץ������Ϥ�

kc_normal����ꤷ����硤�����ѿ�jrBeepFunc�����ꤵ�줿�ؿ���̤������� ���ϻ��˥饤�֥��ˤ�äƼ�ưŪ�˸ƤӽФ���ޤ���jrBeepFunc���ͤ����� ���ʤ����ˤ�(jrBeepFunc == NULL�ξ��ˤ�)���ⵯ����ޤ��� (��)

 extern (*jrBeepFunc)(), beep();

 jrBeepFunc = beep;
 XKanjiControl(dpy, win, KC_SETUNDEFKEYFUNCTION, kc_normal);
"(6)" 6
KC_SETMODEINFOSTYLE - �⡼�ɾ����ɽ��

�⡼�ɾ����ʸ����ǤϤʤ��ӥåȥޥåפʤɤΥǡ�����ɽ����������礬�� ��ޤ������Τ褦�ʾ��ˤϥ⡼�ɾ���Ȥ��ƿ��ͥǡ������֤äƤ���Ƚ��� �����䤹���ʤ�ޤ���XKanjiControl��KC_SETMODEINFOSTYLE�� ���ꤷ��arg�ˣ����Ϥ����Ȥˤ�äƤ���ʸ��XKanjiStatus��¤�� ��mode���Фˤϥ⡼�ɤ�ɽ�����ͤ�'@'(0x40)��ä�����ʸ�����֤� ���褦�ˤʤ�ޤ����⡼�ɤ�ɽ�����ͤ��Ѵ�������ˤ��֤äƤ���ʸ���� ����'@'(0x40)������ޤ����⡼�ɤ�ɽ�����ͤˤĤ��Ƥ����ϥ⡼�ɤ� �ѹ�((2)KC_CHANGEMODE)�Τ������Ȥ��Ʋ�������

"(7)" 6
KC_KAKUTEI��(8) KC_KILL - �������ʸ���������

�������ʸ������餫���Թ��������������礬����ޤ�������������� �������ʸ��������ʸ����Ȥ��Ƽ�����Ǥ����������������������Τ� �Ƥ��ޤäƤ���������������礬����ޤ������ꤹ�� ���ˤ�XKanjiControl�ˤ�KC_KAKUTEI����ꤷ���������� ���ˤ�KC_KILL����ꤷ�ޤ���

���ν�����ɽ���˱ƶ���Ϳ����Τ���4�����ˤ�XKanjiStatusWithValue��¤ �Τ���ꤷ�ʤ���Фʤ�ޤ���

 XKanjiStatusWithValue ksv;
 XKanjiStatus ks;
 unsigned char buf[SOMESIZE];
 .....
 ksv.ks = &ks;
 ksv.buffer = buf;
 ksv.bytes_buffer = SOMESIZE;

 XKanjiControl(dpy, win, KC_KAKUTEI, &ksv);
 len = ksv.val;
 .....
"(9)" 6
KC_QUERYMODE - �⡼�ɤ��䤤��碌

���ߤΥ⡼�ɤ��䤤��碌��ˤ�XKanjiControl��KC_QUERYMODE����ꤷ�ޤ���

��4�����ˤϥ⡼��ʸ������Ǽ���뤿���ʸ������Υݥ�������ꤷ�ޤ��� �⡼��ʸ����ϥ̥�ʸ���ǽ����ʸ����Ǥ��������˿��ͤ��֤�褦�ˤ���� ��XKanjiControl��KC_SETMODEINFOSTYLE����ꤷ�ƥ⡼��ʸ����Υ������� ���ѹ����Ƥ����ޤ��� (��)

 char currentMode[MAXMODELEN];
 .....
 XKanjiControl(dpy, win, KC_QUERYMODE, currentMode);
 .....
"(10)" 6
KC_SETSERVERNAME - �����Фλ���

���ʴ����Ѵ������ФȤ��ƤɤΥ����Ф�Ȥ������ץꥱ�������ץ���� ��λ���뤳�Ȥʤ������ؤ��뤳�Ȥ���ǽ�Ǥ������ʴ����Ѵ������ФȤ����� ³����٤������Ф���ꤹ��ˤ�XKanjiControl��KC_SETSERVERNAME����ꤷ �ޤ�����4�����ˤ���³������������̾����ꤷ�ޤ���

"(11)" 6
KC_SETINITFILENAME - �������ޥ����ե�����λ���

�������ޥ����ե�������ץꥱ�������ץ����¦�����ѹ����뤳�Ȥ��� ���ޤ����������ޥ����ե�������ѹ���XKanjiControl�� ��3������KC_SETINITFILENAME����ꤷ����4�����˥ե�����̾ʸ�������� ���뤳�Ȥˤ��Ԥ��ޤ������ν�����Ԥ�����KC_INITIALIZE����Ω�äƼ� �Ԥ��Ƥ����ʤ���Фʤ�ޤ��� (��)

 char *inifile = "app-own.canna"
 .....
 XKanjiControl(dpy, win, KC_SETINITFILENAME, initfile);
 .....
"(12)" 6
KC_CLOSEUICONTEXT - ����ƥ����ȤΥ�����

XKanjiControl��XKanjiString��ƤӽФ��ȡ�dpy, win���Ȥ߹�碌�� �Ф��ƤҤȤĤ��Ѵ�����ƥ����Ȥ������Ƥޤ��� ���ޤǻȤ��Ƥ��ʤ�dpy, win�� �Ȥ߹�碌��XKanjiString���뤤��XKanjiControl��Ϳ���뤳�Ȥ���ǽ �Ǥ��ꡤ���ξ�硤���Υ�����ɥ��Ѥ˿����˥���ƥ����Ȥ���������ɬ�פʥ� ��꤬���ݤ���ޤ���

����ޤǻ��Ѥ��Ƥ���������ɥ����Ȥ��ʤ��ʤä����ˡ����Υ�����ɥ��˳� �����ƤƻȤäƤ�������ƥ������Ѥ˳��ݤ��줿����� ��������ˤ�XKanjiControl����3������KC_CLOSEUICONTEXT����ꤷ�ƸƤ� �Ф��ޤ���

���ν�����ɽ�����Ѳ���Ȥ�ʤ��Τ���4�����ˤ�XKanjiStatusWithValue�� ¤�Τ�Ϳ���ޤ��� (��)

 XKanjiStatusWithValue ksv;
 XKanjiStatus ks;
 unsigned char buf[SOMESIZE];
 .....
 ksv.ks = &ks;
 ksv.buffer = buf;
 ksv.bytes_buffer = SOMESIZE;

 XKanjiControl(dpy, win, KC_CLOSEUICONTEXT, &ksv);
 .....
"(13)" 6
KC_QUERYMAXMODESTR - �⡼��ɽ��ʸ����κ���Ĺ����롥

������ե�����ˤƥ⡼��ɽ��ʸ�����������ޥ����Ǥ��ޤ������������ޥ� �����줿��̥⡼��ɽ��ʸ����ˤɤ������ɽ���ΰ����ݤ��뤫��Ĵ�٤�ɬ �פ������礬����ޤ���XKanjiControl����3������KC_QUERYMAXMODESTR�� ���ꤷ�ƸƤӽФ����Ȥˤ�ꡤ�⡼��ɽ��ʸ����Ȥ��Ʋ������ɬ�פ����֤� �ͤȤ����֤���ޤ��������Ǹ��������Ȥ�Ⱦ�ѱѿ�ʸ����ʸ�������Ȥ��� �Ȥ����ͤ����ޤ���

��4�������Ѥ����ʤ��Τǥ��ߡ��ͤȤ���0��Ϳ���ޤ��� (��)

 int max_mode_columns;
 .....
 max_mode_columns = XKanjiControl(dpy, win, KC_QUERYMAXMODESTR, 0);
 .....