1 /* Copyright 1992 NEC Corporation, Tokyo, Japan. 2 * 3 * Permission to use, copy, modify, distribute and sell this software 4 * and its documentation for any purpose is hereby granted without 5 * fee, provided that the above copyright notice appear in all copies 6 * and that both that copyright notice and this permission notice 7 * appear in supporting documentation, and that the name of NEC 8 * Corporation not be used in advertising or publicity pertaining to 9 * distribution of the software without specific, written prior 10 * permission. NEC Corporation makes no representations about the 11 * suitability of this software for any purpose. It is provided "as 12 * is" without express or implied warranty. 13 * 14 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN 16 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR 17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 18 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 19 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 20 * PERFORMANCE OF THIS SOFTWARE. 21 */ 22 23 /* 24 * @(#) 102.1 $Id: canna.h,v 1.11 2003/09/25 07:24:54 aida_s Exp $ 25 */ 26 27 #ifndef _CANNA_H_ 28 #define _CANNA_H_ 29 30 #include "cannaconf.h" 31 #include "ccompat.h" 32 #include <stdio.h> 33 34 #define CANNA_NEW_WCHAR_AWARE 35 #include <canna/RK.h> 36 #include <canna/jrkanji.h> 37 38 #define POINTERINT canna_intptr_t 39 #define exp(x) x 40 41 #if 0 42 #define USE_MALLOC_FOR_BIG_ARRAY 43 #endif 44 45 #define WCHARSIZE (sizeof(cannawc)) 46 47 #define MBstowcs CANNA_mbstowcs 48 #define WCstombs CANNA_wcstombs 49 50 #include "sglobal.h" 51 52 #define XLookupKanji2 IROHA_G300_XLookupKanji2 53 #define XKanjiControl2 IROHA_G301_XKanjiControl2 54 #define XwcLookupKanji2 IROHA_G425_XwcLookupKanji2 55 #define XwcKanjiControl2 IROHA_G426_XwcKanjiControl2 56 #define FirstTime CANNA_G271_FirstTime 57 58 #define STROKE_LIMIT 500 /* ���ȥ�������³���ڤ� */ 59 60 typedef unsigned char BYTE; 61 62 /********************************************************************* 63 * wchar_t replace begin * 64 *********************************************************************/ 65 #ifdef wchar_t 66 # error "wchar_t is already defined" 67 #endif 68 #define wchar_t cannawc 69 70 /* 71 * CANNALIBDIR -- �����ƥ�Υ������ޥ����ե��������������Ѵ� 72 * �ơ��֥뤬�֤����ǥ��쥯�ȥꡣ 73 */ 74 75 #ifndef CANNALIBDIR 76 #define CANNALIBDIR "/usr/lib/canna" 77 #endif 78 79 /* flags �ξ��� */ 80 #define CANNA_KANJIMODE_TABLE_SHARED 01 81 #define CANNA_KANJIMODE_EMPTY_MODE 02 82 83 /* func ���軰���� */ 84 #define KEY_CALL 0 85 #define KEY_CHECK 1 86 #define KEY_SET 2 87 88 extern BYTE default_kmap[]; 89 90 /* menuitem -- ��˥塼ɽ���ι��ܤ��������ơ��֥� */ 91 92 typedef struct _menuitem { 93 int flag; /* ���� */ 94 union { 95 struct _menustruct *menu_next; /* ��˥塼�ؤΥݥ��� */ 96 int fnum; /* ��ǽ�ֹ� */ 97 char *misc; /* ����¾(lisp �Υ���ܥ�ʤ�) */ 98 } u; 99 } menuitem; 100 101 #define MENU_SUSPEND 0 /* �ޤ���ޤäƤ��ʤ�(lisp �Υ���ܥ�) */ 102 #define MENU_MENU 1 /* ��˥塼 */ 103 #define MENU_FUNC 2 /* ��ǽ�ֹ� */ 104 105 /* menustruct -- ��˥塼���빽¤�� */ 106 107 typedef struct _menustruct { 108 int nentries; /* ��˥塼�ι��ܤο� */ 109 wchar_t **titles; /* ��˥塼�θ��Ф��ꥹ�� */ 110 wchar_t *titledata; /* ��Υꥹ�Ȥμ���ʸ���� */ 111 menuitem *body; /* ��˥塼�����(����) */ 112 int modeid; /* ��˥塼�Υ⡼���ֹ� */ 113 struct _menustruct *prev; /* ������Υ�˥塼�ؤΥݥ��� */ 114 } menustruct; 115 116 typedef struct _menuinfo { 117 menustruct *mstruct; /* �ɤΥ�˥塼�� */ 118 int curnum; /* ���ʤ������줿�ֹ�Ϥ���Ǥ��� */ 119 struct _menuinfo *next; 120 } menuinfo; 121 122 /* defselection ��������줿����ط��ΰ�����ȤäƤ�����¤�� */ 123 124 typedef struct { 125 wchar_t **kigo_data; /* ����ɽ���γ����Ǥ����� */ 126 wchar_t *kigo_str; /* ����ɽ���������Ǥ���������� */ 127 int kigo_size; /* ���Ǥο� */ 128 int kigo_mode; /* ���ΤȤ��Υ⡼�� */ 129 } kigoIchiran; 130 131 typedef struct _selectinfo { 132 kigoIchiran *ichiran; /* �ɤΰ����� */ 133 int curnum; /* �������줿�ֹ� */ 134 struct _selectinfo *next; 135 } selectinfo; 136 137 /* deldicinfo -- ñ�����κݤ�ɬ�פʼ���ξ����Ƥ�����¤�� */ 138 139 #define INDPHLENGTH 16 /* ��Ω��ǰ���Ĺ���ʻ��Ĺ�� */ 140 141 typedef struct _deldicinfo { 142 wchar_t *name; 143 wchar_t hcode[INDPHLENGTH]; 144 } deldicinfo; 145 146 /* 147 * glineinfo -- �������ɽ���Τ��������������Ǽ���Ƥ�������ι�¤�Ρ� 148 * ���줾��Υ��Фϰʲ��ΰ�̣����ġ� 149 * 150 * glkosu -- ���ιԤˤ������ο� 151 * glhead -- ���ιԤ���Ƭ���䤬��kouhoinfo�β����ܤ�(0���������) 152 * gllen -- ���ιԤ�ɽ�����뤿���ʸ�����Ĺ�� 153 * gldata -- ���ιԤ�ɽ�����뤿���ʸ����ؤΥݥ��� 154 */ 155 156 typedef struct { 157 int glkosu; 158 int glhead; 159 int gllen; 160 wchar_t *gldata; 161 } glineinfo; 162 163 /* 164 * kouhoinfo -- ��������Τ��������������Ǽ���Ƥ�������ι�¤�� 165 * ���줾��Υ��Фϰʲ��ΰ�̣����ġ� 166 * 167 * khretsu -- ���θ��䤬����� 168 * khpoint -- ���θ���ιԤΤʤ��Ǥΰ��� 169 * khdata -- ���θ����ʸ����ؤΥݥ��� 170 */ 171 172 typedef struct { 173 int khretsu; 174 int khpoint; 175 wchar_t *khdata; 176 } kouhoinfo; 177 178 #define ROMEBUFSIZE 1024 179 #define BANGOSIZE 2 /* �������γƸ�����ֹ�Υ����� */ 180 #define BANGOMAX 9 /* ���������κ������� */ 181 182 #define KIGOBANGOMAX 16 /* ���������κ������� */ 183 #define GOBISUU 9 184 185 #define ON 1 186 #define OFF 0 187 188 #define NG -1 189 190 #define NO_CALLBACK (canna_callback_t)0 191 #define NCALLBACK 4 192 193 #define JISHU_HIRA 0 194 #define JISHU_ZEN_KATA 1 195 #define JISHU_HAN_KATA 2 196 #define JISHU_ZEN_ALPHA 3 197 #define JISHU_HAN_ALPHA 4 198 #define MAX_JISHU 5 199 200 #define SENTOU 0x01 201 #define HENKANSUMI 0x02 202 #define SUPKEY 0x04 203 #define GAIRAIGO 0x08 204 #define STAYROMAJI 0x10 205 206 /* ñ����Ͽ���ʻ� */ 207 #define MEISHI 0 208 #define KOYUMEISHI 1 209 #define DOSHI 2 210 #define KEIYOSHI 3 211 #define KEIYODOSHI 4 212 #define FUKUSHI 5 213 #define TANKANJI 6 214 #define SUSHI 7 215 #define RENTAISHI 8 216 #define SETSUZOKUSHI 9 217 #define SAHENMEISHI 10 218 #define MEISHIN 11 219 #define JINMEI 12 220 #define KOYUMEISHIN 13 221 #define GODAN 14 222 #define RAGYODOSHI 15 223 #define RAGYOGODAN 16 224 #define KAMISHIMO 17 225 #define KEIYOSHIY 18 226 #define KEIYOSHIN 19 227 #define KEIYODOSHIY 20 228 #define KEIYODOSHIN 21 229 #define FUKUSHIY 22 230 #define FUKUSHIN 23 231 232 /* identifier for each context structures */ 233 #define CORE_CONTEXT ((BYTE)0) 234 #define YOMI_CONTEXT ((BYTE)1) 235 #define ICHIRAN_CONTEXT ((BYTE)2) 236 #define FORICHIRAN_CONTEXT ((BYTE)3) 237 #define MOUNT_CONTEXT ((BYTE)4) 238 #define TOUROKU_CONTEXT ((BYTE)5) 239 #define TAN_CONTEXT ((BYTE)6) 240 241 typedef struct _coreContextRec { 242 BYTE id; 243 BYTE majorMode, minorMode; 244 struct _kanjiMode *prevMode; /* �������Υ⡼�� */ 245 struct _coreContextRec *next; 246 } coreContextRec, *coreContext; 247 248 typedef coreContext mode_context; 249 250 typedef struct _yomiContextRec { 251 /* core �����Ʊ������ */ 252 BYTE id; 253 BYTE majorMode, minorMode; 254 struct _kanjiMode *prevMode; /* �������Υ⡼�� */ 255 mode_context next; 256 257 struct _kanjiMode *curMode; 258 struct _tanContextRec *left, *right; 259 260 /* ���������Ѵ��ط� */ 261 struct RkRxDic *romdic; /* ���������Ѵ��ơ��֥� */ 262 wchar_t romaji_buffer[ROMEBUFSIZE]; 263 /* �����Хåե��� rStartp, rEndp �Σ��ĤΥ���ǥå����ˤ�äƴ������� 264 * �롣rStartp �ϥ��ʤ��Ѵ��Ǥ��ʤ��ä������κǽ��ʸ���ؤΥ���ǥ� 265 * �����Ǥ��ꡢrEndp �Ͽ����˥��������Ϥ�����ˡ���Ǽ���٤� 266 * romaji_buffer ��Υ���ǥå����Ǥ��롣���������Ϥ��������ϡ� 267 * romaji_buffer + rEndp �����˳�Ǽ���졢���Υ����ʤ��Ѵ��� 268 * ����ϡ�romaji_buffer + rStartp ���� rEndp - rStartp �Х��Ȥ�ʸ���� 269 * �оݤȤʤ롣 */ 270 int rEndp, rStartp, rCurs; /* �����Хåե��Υݥ��� */ 271 wchar_t kana_buffer[ROMEBUFSIZE]; 272 BYTE rAttr[ROMEBUFSIZE], kAttr[ROMEBUFSIZE]; 273 int kEndp; /* ���ʥХåե��κǸ����ݥ��� */ 274 int kRStartp, kCurs; 275 276 /* ����¾�Υ��ץ���� */ 277 BYTE myMinorMode; /* yomiContext ��ͭ�Υޥ��ʥ⡼�� */ 278 struct _kanjiMode *myEmptyMode; /* empty �⡼�ɤϤɤ줫 */ 279 long generalFlags; /* see below */ 280 long savedFlags; /* ��Υե饰�ΰ����Υ����� */ 281 BYTE savedMinorMode; /* �ޥ��ʥ⡼�ɤΥ����� */ 282 BYTE allowedChars; /* see jrkanji.h */ 283 BYTE henkanInhibition; /* see below */ 284 int cursup; /* ���ʤ����ɤλ��˻Ȥ� */ 285 #define SUSPCHARBIAS 100 286 int n_susp_chars; 287 288 /* from henkanContext */ 289 /* ���ʴ����Ѵ��ط� */ 290 int context; 291 int kouhoCount; /* ���� henkanNext ��Ϣ³���Ʋ����줿�� */ 292 wchar_t echo_buffer[ROMEBUFSIZE]; 293 wchar_t **allkouho; /* RkGetKanjiList��������ʸ���������ˤ��� 294 �ȤäƤ����Ȥ��� */ 295 int curbun; /* ������ʸ�� */ 296 int curIkouho; /* �����ȸ��� */ 297 int nbunsetsu; /* ʸ��ο� */ 298 299 /* ifdef MEASURE_TIME */ 300 long proctime; /* ��������(�Ѵ��Ƿ�¬����) */ 301 long rktime; /* ��������(RK�ˤ��������) */ 302 /* endif MEASURE_TIME */ 303 /* end of from henkanContext */ 304 305 /* �༡����ƥ����Ȥ��� */ 306 int ye, ys, status; 307 /* �༡����ƥ����Ȥ���(�����ޤ�) */ 308 int cStartp, cRStartp; /* �༡���ɤߤȤ��ƻĤäƤ�����ʬ */ 309 310 /* ���拾��ƥ����Ȥ��� */ 311 BYTE inhibition; 312 BYTE jishu_kc, jishu_case; 313 int jishu_kEndp, jishu_rEndp; 314 short rmark; 315 /* ���拾��ƥ����Ȥ���(�����ޤ�) */ 316 317 /* adjustContext ���� */ 318 int kanjilen, bunlen; /* ������ʬ��ʸ���Ĺ�� */ 319 /* adjustContext ����(�����ޤ�) */ 320 struct _kanjiMode *tanMode; /* ñ����ΤȤ��Υ⡼�� */ 321 int tanMinorMode; /* �� */ 322 323 /* ������ѿ� */ 324 int last_rule; /* ����Υ����Ѵ��˻Ȥ�줿�롼�� */ 325 wchar_t *retbuf, *retbufp; 326 int retbufsize; 327 short pmark, cmark; /* �������Υޡ����Ⱥ��Υޡ��� */ 328 BYTE englishtype; /* �Ѹ쥿����(�ʲ���) */ 329 } yomiContextRec, *yomiContext; 330 331 /* for generalFlags */ 332 #define CANNA_YOMI_MODE_SAVED 0x01L /* savedFlags �ˤ����Ȥ��ʤ� */ 333 334 #define CANNA_YOMI_BREAK_ROMAN 0x01L 335 #define CANNA_YOMI_CHIKUJI_MODE 0x02L 336 #define CANNA_YOMI_CHGMODE_INHIBITTED 0x04L 337 #define CANNA_YOMI_END_IF_KAKUTEI 0x08L 338 #define CANNA_YOMI_DELETE_DONT_QUIT 0x10L 339 340 #define CANNA_YOMI_IGNORE_USERSYMBOLS 0x20L 341 #define CANNA_YOMI_IGNORE_HENKANKEY 0x40L 342 343 #define CANNA_YOMI_BASE_CHIKUJI 0x80L /* �����༡ */ 344 345 /* for generalFlags also used in savedFlags */ 346 347 /* �ʲ��� ATTRFUNCS �˥ޥ��������ӥåȤ� defmode ��°���Ȥ��ƻȤ��� */ 348 #define CANNA_YOMI_KAKUTEI 0x0100L 349 #define CANNA_YOMI_HENKAN 0x0200L 350 #define CANNA_YOMI_ZENKAKU 0x0400L 351 #define CANNA_YOMI_HANKAKU 0x0800L /* �ºݤ�Ⱦ�� */ 352 #define CANNA_YOMI_HIRAGANA 0x1000L 353 #define CANNA_YOMI_KATAKANA 0x2000L 354 #define CANNA_YOMI_ROMAJI 0x4000L 355 #define CANNA_YOMI_JISHUFUNCS 0x7c00L 356 #define CANNA_YOMI_ATTRFUNCS 0x7f00L 357 358 #define CANNA_YOMI_BASE_HANKAKU 0x8000L /* ����Ⱦ�� */ 359 360 /* kind of allowed input keys */ 361 #define CANNA_YOMI_INHIBIT_NONE 0 362 #define CANNA_YOMI_INHIBIT_HENKAN 1 363 #define CANNA_YOMI_INHIBIT_JISHU 2 364 #define CANNA_YOMI_INHIBIT_ASHEX 4 365 #define CANNA_YOMI_INHIBIT_ASBUSHU 8 366 #define CANNA_YOMI_INHIBIT_ALL 15 367 368 /* ��������Τ���Υե饰 */ 369 #define NUMBERING 1 370 #define CHARINSERT 2 371 372 #define CANNA_JISHU_UPPER 1 373 #define CANNA_JISHU_LOWER 2 374 #define CANNA_JISHU_CAPITALIZE 3 375 #define CANNA_JISHU_MAX_CASE 4 376 377 /* englishtype */ 378 #define CANNA_ENG_KANA 0 /* �̾����뤳�� */ 379 #define CANNA_ENG_ENG1 1 380 #define CANNA_ENG_ENG2 2 /* ξü�˶������äƤ��� */ 381 #define CANNA_ENG_NO 3 382 383 /* yc->status �Υե饰(�༡��) */ 384 385 #define CHIKUJI_ON_BUNSETSU 0x0001 /* ʸ���ˤ��� */ 386 #define CHIKUJI_OVERWRAP 0x0002 /* ʸ�ᤫ���ɤ߾��֡� */ 387 #define CHIKUJI_NULL_STATUS 0 /* ��Τ�ä��� */ 388 389 /* yc ��Ȥ��⡼�ɤζ���(ͥ���) */ 390 391 #define adjustp(yc) (0< (yc)->bunlen) 392 #define jishup(yc) (0 < (yc)->jishu_kEndp) 393 #define chikujip(yc) ((yc)->generalFlags & CANNA_YOMI_CHIKUJI_MODE) 394 #define henkanp(yc) (0 < (yc)->nbunsetsu) 395 396 #define chikujiyomiremain(yc) ((yc)->cStartp < (yc)->kEndp) 397 398 typedef struct _ichiranContextRec { 399 BYTE id; 400 BYTE majorMode, minorMode; 401 struct _kanjiMode *prevMode; /* �������Υ⡼�� */ 402 mode_context next; 403 404 int svIkouho; /* �����ȸ�������ȤäƤ���(����ɽ����) */ 405 int *curIkouho; /* �����ȸ��� */ 406 int nIkouho; /* ����ο�(����ɽ����) */ 407 int tooSmall; /* �������������Ƹ���������Ф��ʤ���ե饰 */ 408 int curIchar; /* ̤����ʸ�����ñ����Ͽ��ñ�����Ϥ� 409 ��Ƭʸ���ΰ��� */ 410 BYTE inhibit; 411 BYTE flags; /* ���Ƥ� */ 412 wchar_t **allkouho; /* RkGetKanjiList��������ʸ���������ˤ��� 413 �ȤäƤ����Ȥ��� */ 414 wchar_t *glinebufp; /* ��������Τ����Ԥ�ɽ�����뤿���ʸ�� 415 ��ؤΥݥ��� */ 416 kouhoinfo *kouhoifp; /* ��������ط��ξ�����Ǽ���Ƥ�����¤�� 417 �ؤΥݥ��� */ 418 glineinfo *glineifp; /* ��������ط��ξ�����Ǽ���Ƥ�����¤�� 419 �ؤΥݥ��� */ 420 } ichiranContextRec, *ichiranContext; 421 422 /* �ե饰�ΰ�̣ */ 423 #define ICHIRAN_ALLOW_CALLBACK 1 /* ������Хå��Ƥ��ɤ� */ 424 #define ICHIRAN_STAY_LONG 0x02 /* ���֤�ȴ���� */ 425 #define ICHIRAN_NEXT_EXIT 0x04 /* ���� quit ��ȴ���� */ 426 427 428 typedef struct _foirchiranContextRec { 429 BYTE id; 430 BYTE majorMode, minorMode; 431 struct _kanjiMode *prevMode; /* �������Υ⡼�� */ 432 mode_context next; 433 434 int curIkouho; /* �����ȸ��� */ 435 wchar_t **allkouho; /* RkGetKanjiList��������ʸ���������ˤ��� 436 �ȤäƤ����Ȥ��� */ 437 menustruct *table; /* ʸ����ȴؿ��Υơ��֥� */ 438 int *prevcurp; /* ���Υ����ȸ��� */ 439 } forichiranContextRec, *forichiranContext; 440 441 typedef struct _mountContextRec { 442 BYTE id; 443 BYTE majorMode, minorMode; 444 struct _kanjiMode *prevMode; /* �������Υ⡼�� */ 445 mode_context next; 446 447 BYTE *mountOldStatus; /* �ޥ���Ȥ���Ƥ��뤫���ʤ��� */ 448 BYTE *mountNewStatus; /* �ޥ���Ȥ���Ƥ��뤫���ʤ��� */ 449 char **mountList; /* �ޥ���Ȳ�ǽ�ʼ���ΰ��� */ 450 int curIkouho; /* �����ȸ��� */ 451 } mountContextRec, *mountContext; 452 453 typedef struct _tourokuContextRec { 454 BYTE id; 455 BYTE majorMode, minorMode; 456 struct _kanjiMode *prevMode; /* �������Υ⡼�� */ 457 mode_context next; 458 459 wchar_t genbuf[ROMEBUFSIZE]; 460 wchar_t qbuf[ROMEBUFSIZE]; 461 wchar_t tango_buffer[ROMEBUFSIZE]; 462 int tango_len; /* ñ����Ͽ��ñ���ʸ�����Ĺ�� */ 463 wchar_t yomi_buffer[ROMEBUFSIZE]; 464 int yomi_len; /* ñ����Ͽ���ɤߤ�ʸ�����Ĺ�� */ 465 int curHinshi; /* �ʻ������ */ 466 int workDic; /* ����Ѥμ��� */ 467 deldicinfo *workDic2; /* ñ������ǽ�ʼ��� */ 468 int nworkDic2; /* ñ������ǽ�ʼ���ο� */ 469 deldicinfo *workDic3; /* ñ�������뼭�� */ 470 int nworkDic3; /* ñ�������뼭��ο� */ 471 struct dicname *newDic; /* �ɲä��뼭�� */ 472 wchar_t hcode[INDPHLENGTH]; /* ñ����Ͽ���ʻ� */ 473 int katsuyou; /* ñ����Ͽ��ư��γ��ѷ� */ 474 wchar_t **udic; /* ñ����Ͽ�Ǥ��뼭�� (����̾) */ 475 int nudic; /* ñ����Ͽ�Ǥ��뼭��ο� */ 476 int delContext; /* ñ�����ǣ��Ĥμ����ޥ���Ȥ��� */ 477 } tourokuContextRec, *tourokuContext; 478 479 typedef struct _tanContextRec { 480 BYTE id; 481 BYTE majorMode, minorMode; 482 struct _kanjiMode *prevMode; /* �������Υ⡼�� */ 483 mode_context next; 484 485 struct _kanjiMode *curMode; 486 struct _tanContextRec *left, *right; 487 488 struct RkRxDic *romdic; /* ���������Ѵ��ơ��֥� */ 489 BYTE myMinorMode; /* yomiContext ��ͭ�Υޥ��ʥ⡼�� */ 490 struct _kanjiMode *myEmptyMode; /* empty �⡼�ɤϤɤ줫 */ 491 long generalFlags, savedFlags; /* yomiContext �Υ��ԡ� */ 492 BYTE savedMinorMode; /* �ޥ��ʥ⡼�ɤΥ����� */ 493 BYTE allowedChars; /* see jrkanji.h */ 494 BYTE henkanInhibition; /* see below */ 495 496 wchar_t *kanji, *yomi, *roma; 497 BYTE *kAttr, *rAttr; 498 } tanContextRec, *tanContext; 499 500 struct moreTodo { 501 BYTE todo; /* ��äȤ���Ρ��� */ 502 BYTE fnum; /* �ؿ��ֹ档���ʤ鼡��ʸ���Ǽ�����뤳�Ȥ� */ 503 int ch; /* ʸ�� */ 504 }; 505 506 /* �⡼��̾���Ǽ����ǡ����η���� */ 507 508 struct ModeNameRecs { 509 int alloc; 510 wchar_t *name; 511 }; 512 513 /* �������ֹ�Υ��ѥ졼�����Υǥե���Ȥ���� */ 514 515 #define DEFAULTINDEXSEPARATOR '.' 516 517 /* 518 wcKanjiAttribute for internal use 519 */ 520 521 typedef struct { 522 wcKanjiAttribute u; 523 int len; 524 char *sp, *ep; 525 } wcKanjiAttributeInternal; 526 527 /* 528 529 uiContext �ϥ��������Ѵ������ʴ����Ѵ��˻Ȥ��빽¤�ΤǤ��롣 530 XLookupKanjiString �ʤɤˤ���Ѵ��ϡ�������ɥ���ʬΥ���줿ʣ������ 531 �ϥݡ��Ȥ��б����Ƥ���Τǡ�������Υ����ξ���䡢���ʴ����Ѵ� 532 ���ͻҤʤɤ줾��Υ�����ɥ����ʬΥ�����ݻ����Ƥ����ʤ���Ф� 533 ��ʤ������ι�¤�ΤϤ��Τ���˻Ȥ��빽¤�ΤǤ��롣 534 535 ��¤�ΤΥ��Ф��ɤΤ褦�ʤ�Τ����뤫�ϡ�����Ȥ��뤳�� 536 537 */ 538 539 typedef struct _uiContext { 540 541 /* XLookupKanjiString�Υѥ� */ 542 wchar_t *buffer_return; 543 int n_buffer; 544 wcKanjiStatus *kanji_status_return; 545 546 /* XLookupKanjiString������ͤǤ���ʸ�����Ĺ�� */ 547 int nbytes; 548 549 /* ����饯�� */ 550 int ch; 551 552 /* ���ߥ����Х�ǡ��� */ 553 int contextCache; /* �Ѵ�����ƥ����ȥ���å��� */ 554 struct _kanjiMode *current_mode; 555 BYTE majorMode, minorMode; /* ľ���Τ�� */ 556 557 short curkigo; /* �����ȵ���(��������) */ 558 char currussia; /* �����ȵ���(����ʸ��) */ 559 char curgreek; /* �����ȵ���(���ꥷ��ʸ��) */ 560 char curkeisen; /* �����ȵ���(����) */ 561 short curbushu; /* ����������̾ */ 562 int ncolumns; /* ��ԤΥ���������������λ����Ѥ����� */ 563 wchar_t genbuf[ROMEBUFSIZE]; /* ���ѥХåե� */ 564 short strokecounter; /* �������ȥ����Υ����� 565 �����⡼�ɤǥ��ꥢ����� */ 566 wcKanjiAttributeInternal *attr; 567 568 /* �ꥹ�ȥ�����Хå���Ϣ */ 569 char *client_data; /* ���ץꥱ��������ѥǡ��� */ 570 int (*list_func) pro((char *, int, wchar_t **, int, int *)); 571 jrEUCListCallbackStruct elistcb; /* EUC�ξ��μ���(��wc�����) */ 572 /* �ꥹ�ȥ�����Хå��ؿ� */ 573 /* ����¾ */ 574 char flags; /* ���Ƥ� */ 575 char status; /* �ɤΤ褦�ʾ��֤��֤ä��Τ����� 576 ���Υ⡼�ɤȤ��ơ� 577 �������� 578 ��������λ 579 ���������� 580 ������¾ 581 �����롣(����) */ 582 583 /* ������Хå��������� */ 584 struct callback *cb; 585 586 /* ��äȤ��뤳�Ȥ������Ȥ�����¤�� */ 587 struct moreTodo more; 588 589 /* �����åȥ������� */ 590 menustruct *prevMenu; 591 592 /* �ƥ�˥塼�����Ф줿�ֹ��Ͽ���Ƥ�����¤�ΤؤΥݥ��� */ 593 menuinfo *minfo; 594 595 /* �ư��������Ф줿�ֹ��Ͽ���Ƥ�����¤�ΤؤΥݥ��� */ 596 selectinfo *selinfo; 597 598 /* ���֥���ƥ����ȤؤΥ�� */ 599 mode_context modec; /* ���������ˤĤʤ�ͽ�� */ 600 } uiContextRec, *uiContext; 601 602 /* uiContext �� flags �ΥӥåȤΰ�̣ */ 603 #define PLEASE_CLEAR_GLINE 1 /* GLine ��ä��Ƥ� */ 604 #define PCG_RECOGNIZED 2 /* GLine �Ͼä��ޤ��� */ 605 #define MULTI_SEQUENCE_EXECUTED 4 /* ���ä��ޥ�����������Ԥ�줿 */ 606 607 #define EVERYTIME_CALLBACK 0 608 #define EXIT_CALLBACK 1 609 #define QUIT_CALLBACK 2 610 #define AUX_CALLBACK 3 611 612 /* 613 * ���ʴ����Ѵ��Τ�����͡��ʥ����ޥåץơ��֥� 614 * �����ޥåץơ��֥�Ͻ����ؿ��ؤΥݥ�������ȤʤäƤ��롣 615 */ 616 617 struct funccfunc { 618 BYTE funcid; 619 int (*cfunc) pro((struct _uiContext *)); 620 }; 621 622 typedef struct _kanjiMode { 623 int (*func) pro((struct _uiContext *, struct _kanjiMode *, int, int, int)); 624 BYTE *keytbl; 625 int flags; /* ���� */ 626 struct funccfunc *ftbl; 627 } *KanjiMode, KanjiModeRec; 628 629 struct callback { 630 int (*func[NCALLBACK]) pro((struct _uiContext *, int, mode_context)); 631 mode_context env; 632 struct callback *next; 633 }; 634 635 /* ���������Ѵ��ơ��֥� */ 636 637 extern struct RkRxDic *romajidic; 638 extern struct RkRxDic *RkwOpenRoma pro((char *)); 639 640 /* 641 * �����̾��������Ƥ����ѿ� 642 */ 643 644 struct dicname { 645 struct dicname *next; 646 char *name; 647 int dictype; 648 unsigned long dicflag; 649 }; 650 651 /* dictype �ˤϰʲ��Τ����줫������ */ 652 #define DIC_PLAIN 0 /* �̾������ */ 653 #define DIC_USER 1 /* ñ����Ͽ�Ѽ��� */ 654 #define DIC_BUSHU 2 /* �����Ѵ��Ѽ��� */ 655 #define DIC_GRAMMAR 3 /* ʸˡ���� */ 656 #define DIC_RENGO 4 /* Ϣ��ؽ����� */ 657 #define DIC_KATAKANA 5 /* �������ʳؽ����� */ 658 #define DIC_HIRAGANA 6 /* �Ҥ餬�ʳؽ����� */ 659 660 /* dicflag �ˤϰʲ��Τ����줫������ */ 661 #define DIC_NOT_MOUNTED 0 662 #define DIC_MOUNTED 1 663 #define DIC_MOUNT_FAILED 2 664 665 extern struct dicname *kanjidicnames; 666 667 /* 668 * ���顼�Υ�å�����������Ƥ����ѿ� 669 */ 670 671 extern char *jrKanjiError; 672 673 /* 674 * �ǥХ�ʸ��ɽ�����뤫�ɤ����Υե饰 675 */ 676 677 extern iroha_debug; 678 679 /* 680 * ������������ȯ������褦�ʥ��� 681 */ 682 683 #define IrohaFunctionKey(key) \ 684 ((0x80 <= (int)(unsigned char)(key) && \ 685 (int)(unsigned char)(key) <= 0x8b) || \ 686 (0x90 <= (int)(unsigned char)(key) && \ 687 (int)(unsigned char)(key) <= 0x9b) || \ 688 (0xe0 <= (int)(unsigned char)(key) && \ 689 (int)(unsigned char)(key) <= 0xff) ) 690 691 /* selectOne �ǥ�����Хå���ȼ�����ɤ�����ɽ���ޥ��� */ 692 693 #define WITHOUT_LIST_CALLBACK 0 694 #define WITH_LIST_CALLBACK 1 695 696 /* 697 * Rk �ؿ���ȥ졼�����뤿���̾���ν����� 698 */ 699 700 #ifdef DEBUG 701 #include "traceRK.h" 702 #endif /* DEBUG */ 703 704 /* 705 * �ǥХ���å����������ѤΥޥ��� 706 */ 707 708 #ifdef DEBUG 709 #define debug_message(fmt, x, y, z) dbg_msg(fmt, x, y, z) 710 #else /* !DEBUG */ 711 #define debug_message(fmt, x, y, z) 712 #endif /* !DEBUG */ 713 714 /* 715 * malloc �ΥǥХ� 716 */ 717 718 #ifdef DEBUG_ALLOC 719 extern char *debug_malloc pro((int)); 720 extern int fail_malloc; 721 #define malloc(n) debug_malloc(n) 722 #endif /* DEBUG_MALLOC */ 723 724 /* 725 * �������⡼�ɤ�������빽¤�� 726 */ 727 728 typedef struct { 729 char *romaji_table; /* ���������Ѵ��ơ��֥�̾(EUC) */ 730 struct RkRxDic *romdic; /* ��������¤�� */ 731 int romdic_owner; /* ���������ʬ��Open������ */ 732 long flags; /* flags for yomiContext->generalFlags */ 733 KanjiMode emode; /* current_mode �����빽¤�� */ 734 } newmode; 735 736 /* ���������Ѵ��������륭����ʸ�����Ѵ��ơ��֥� */ 737 738 typedef struct { 739 wchar_t key; /* ���� */ 740 wchar_t xkey; 741 int groupid; /* ���롼��id */ 742 int ncand; /* ����ο� */ 743 wchar_t **cand; /* ��������� */ 744 wchar_t *fullword; /* ������ (����1@����2@...����n@@) */ 745 #ifdef WIN_CANLISP 746 int fullwordsize; /* sizeof fullword by wchar_t unit */ 747 #endif 748 } keySupplement; 749 750 #define MAX_KEY_SUP 64 751 752 #define HEX_USUAL 0 753 #define HEX_IMMEDIATE 1 754 755 #define ModeInfoStyleIsString 0 756 #define ModeInfoStyleIsNumeric 1 757 #define ModeInfoStyleIsExtendedNumeric 2 758 #define ModeInfoStyleIsBaseNumeric 3 759 #define MaxModeInfoStyle ModeInfoStyleIsBaseNumeric 760 761 #define killmenu(d) ((d)->prevMenu = (menustruct *)0) 762 #define defineEnd(d) killmenu(d) 763 #define deleteEnd(d) killmenu(d) 764 765 /* defmode��defselection��defmenu �Ѥι�¤�� */ 766 767 typedef struct _extra_func { 768 int fnum; /* �ؿ��ֹ� */ 769 int keyword; /* �������⡼�ɤ�������줿������� */ 770 wchar_t *display_name; /* �⡼��ɽ��̾ */ 771 union { 772 newmode *modeptr; /* defmode ���б����빽¤�� */ 773 kigoIchiran *kigoptr; /* defselection ���б����빽¤�� */ 774 menustruct *menuptr; /* defmenu ���б����빽¤�� */ 775 } u; 776 #ifdef BINARY_CUSTOM 777 int mid; 778 char *symname; 779 #endif 780 struct _extra_func *next; 781 } extraFunc; 782 783 #define EXTRA_FUNC_DEFMODE 1 784 #define EXTRA_FUNC_DEFSELECTION 2 785 #define EXTRA_FUNC_DEFMENU 3 786 787 #define tanbunMode(d, tan) /* tanContext ��Ϣ�⡼�ɤؤΰܹ� */ \ 788 { extern KanjiModeRec tankouho_mode; (d)->current_mode = &tankouho_mode; \ 789 (d)->modec = (mode_context)(tan); currentModeInfo(d); } 790 791 #define freeForIchiranContext(fc) free((char *)fc) 792 #define freeIchiranContext(ic) free((char *)ic) 793 #define freeYomiContext(yc) free((char *)yc) 794 #define freeCoreContext(cc) free((char *)cc) 795 796 #ifndef DICHOME 797 #define DICHOME "/usr/lib/canna/dic" 798 #endif 799 800 #define DEFAULT_CANNA_SERVER_NAME "cannaserver" 801 802 #ifndef _UTIL_FUNCTIONS_DEF_ 803 804 #define _UTIL_FUNCTIONS_DEF_ 805 806 /* ����ʤΥС�������Ĵ�٤� */ 807 #define canna_version(majv, minv) ((majv) * 1024 + (minv)) 808 809 /* �褯���ڥ�ߥ�����Τǥ���ѥ�����ˤҤä�����褦������� */ 810 extern RkwGoto pro((char *, int)); 811 812 /* storing customize configuration to the following structure. */ 813 struct CannaConfig { /* �ʲ��Υ����Ȥϥ��������ʤɤ˵��Ҥ���Ȥ��ʤɤ� 814 �Ѥ�����á�! ����Ƭ�ˤĤ��Ƥ���Τϥ��å���ȿž 815 ���Ƥ��뤳�Ȥ�ɽ�� */ 816 int CannaVersion; /* (�ߴ���) ����ʤΥС������ */ 817 int kouho_threshold; /* �Ѵ��������ǤĤȰ������Ф뤫 */ 818 int strokelimit; /* (�ߴ���) �����ȥ�������ե��٥åȤ����������Ǥ� */ 819 int indexSeparator; /* (�ߴ���) �������Υ���ǥå����Υ��ѥ졼�� */ 820 BYTE ReverseWidely; /* ȿž�ΰ���Ȥ� */ 821 BYTE chikuji; /* �༡��ư�Ѵ� */ 822 BYTE Gakushu; /* �ؽ����뤫�ɤ��� */ 823 BYTE CursorWrap; /* ��ü�DZ��Ǻ�ü�عԤ� */ 824 BYTE SelectDirect; /* ������������ǰ�����ȴ���� */ 825 BYTE HexkeySelect; /* (�ߴ���) 16�ʿ����Ǥ��������� */ 826 BYTE BunsetsuKugiri; /* �Ѵ���ʸ��֤˶�������� */ 827 BYTE ChBasedMove; /* !���������Ѵ�ñ�̤Υ��������ư */ 828 BYTE ReverseWord; /* (�ߴ���) �����Ǹ��ȿž���� */ 829 BYTE QuitIchiranIfEnd; /* ���������ǰ������Ĥ��� */ 830 BYTE kakuteiIfEndOfBunsetsu; /* ʸ�������DZ���ư�dz��ꤹ�� */ 831 BYTE stayAfterValidate; /* !����������弡��ʸ��ذ�ư */ 832 BYTE BreakIntoRoman; /* BS�����ǥ������᤹ */ 833 BYTE grammaticalQuestion; /* (�ߴ���) ñ����Ͽ��ʸˡŪ����� */ 834 BYTE forceKana; /* Isn't this used? */ 835 BYTE kCount; /* (�ߴ���) ���䤬�����ܤ���ɽ������ */ 836 BYTE LearnNumericalType; /* Isn't this used? */ 837 BYTE BackspaceBehavesAsQuit; /* �༡��ư�Ѵ��� BS ���������Τ��ɤߤ��᤹ */ 838 BYTE iListCB; /* (�ߴ���) �ꥹ�ȥ�����Хå���ػߤ��� */ 839 BYTE keepCursorPosition; /* !�Ѵ�����BS�Ǹ�������������֤������˰�ư */ 840 BYTE abandonIllegalPhono; /* ���������Ѵ��˻Ȥ��ʤ�������ΤƤ� */ 841 BYTE hexCharacterDefiningStyle; /* Isn't this used? */ 842 BYTE kojin; /* �Ŀͳؽ� */ 843 BYTE indexHankaku; /* (�ߴ���) �������Υ���ǥå�����Ⱦ�Ѥˤ��� */ 844 BYTE allowNextInput; /* �������ɽ�������������Ϥ���ǽ�ˤ��� */ 845 BYTE doKatakanaGakushu; /* Isn't this used? */ 846 BYTE doHiraganaGakushu; /* Isn't this used? */ 847 BYTE ChikujiContinue; /* �༡��ư�Ѵ����������ϤǴ��Ѵ���ʬ����ꤷ�ʤ� */ 848 BYTE RenbunContinue; /* Ϣʸ���Ѵ����������ϤǴ��Ѵ���ʬ����ꤷ�ʤ� */ 849 BYTE MojishuContinue; /* �����Ѵ����������ϤǴ��Ѵ���ʬ����ꤷ�ʤ� */ 850 BYTE chikujiRealBackspace; /* �༡��ư�Ѵ���BS��ɬ����ʸ���õ�� */ 851 BYTE ignore_case; /* ��ʸ����ʸ������̤��ʤ� */ 852 BYTE romaji_yuusen; /* ���������Ѵ���ͥ�褹�� */ 853 BYTE auto_sync; /* ���Ū�˼������᤹ */ 854 BYTE quickly_escape; /* (�ߴ���) ����ɽ�����������¨�¤˰�����ȴ���� */ 855 BYTE InhibitHankakuKana; /* Ⱦ�ѥ������ʤζػ� */ 856 BYTE code_input; /* ������(0: jis, 1: sjis, 2: ����) */ 857 BYTE DelayConnect; /* ��������ˤ����˥����Ф���³���ʤ� */ 858 }; 859 860 #define CANNA_CODE_JIS 0 861 #define CANNA_CODE_SJIS 1 862 #define CANNA_CODE_KUTEN 2 863 #define CANNA_MAX_CODE 3 864 865 extern struct CannaConfig cannaconf; 866 extern void InitCannaConfig pro((struct CannaConfig *)); 867 868 typedef int (* canna_callback_t) pro((uiContext, int, mode_context)); 869 870 extern void makeGLineMessage pro((uiContext, wchar_t *, int)); 871 extern void makeGLineMessageFromStrings pro((uiContext, char *)); 872 extern newmode *findExtraKanjiMode pro((int)); 873 extern setWStrings pro((wchar_t **, char **, int)); 874 extern WStrlen pro((wchar_t *)); 875 extern wchar_t *WStrcat pro((wchar_t *, wchar_t *)); 876 extern wchar_t *WStrcpy pro((wchar_t *, wchar_t *)); 877 extern wchar_t *WStrncpy pro((wchar_t *, wchar_t *, int)); 878 extern WStrncmp pro((wchar_t *, wchar_t *, int)); 879 extern wchar_t *WString pro((char *)); 880 #ifndef NO_EXTEND_MENU 881 extern prevMenuIfExist pro((uiContext)); 882 extern showmenu pro((uiContext, menustruct *)); 883 #endif 884 extern yomiContext 885 newYomiContext pro((wchar_t *, int, int, int, int, int)), 886 GetKanjiString pro((uiContext, wchar_t *, int, int, int, int, int, 887 canna_callback_t, canna_callback_t, canna_callback_t)); 888 extern void restoreFlags pro((yomiContext)); 889 extern void kPos2rPos pro((yomiContext, int, int, int *, int *)); 890 extern void makeKanjiStatusReturn pro((uiContext, yomiContext)); 891 extern wchar_t key2wchar pro((int, int *)); 892 extern struct bukRec *internContext 893 pro((unsigned int, unsigned int, uiContext)); 894 extern void freeRomeStruct pro((uiContext)); 895 extern void rmContext pro((unsigned int, unsigned int)); 896 extern struct callback *pushCallback 897 pro((uiContext, mode_context, 898 canna_callback_t, canna_callback_t, 899 canna_callback_t, canna_callback_t)); 900 extern void popCallback pro((uiContext)); 901 extern void makeYomiReturnStruct pro((uiContext)); 902 extern void moveToChikujiTanMode pro((uiContext)); 903 extern void moveToChikujiYomiMode pro((uiContext)); 904 extern void makeGLineMessageFromString pro((uiContext, char *)); 905 extern void addWarningMesg pro((char *)); 906 extern int prepareHenkanMode pro((uiContext)); 907 extern void makeAllContextToBeClosed pro((int)); 908 extern void CannaBeep pro((void)); 909 #ifndef NO_EXTEND_MENU 910 extern void freeAllMenuInfo pro((menuinfo *)); 911 extern void freeMenu pro((menustruct *)); 912 #endif 913 extern void restoreDefaultKeymaps pro((void)); 914 #ifndef NO_EXTEND_MENU 915 extern void finExtMenu pro((void)); 916 #endif 917 extern void freeIchiranBuf pro((ichiranContext)); 918 extern exp(char *) RkwGetServerName pro((void)); 919 extern void popForIchiranMode pro((uiContext)); 920 extern void clisp_main pro((void)); 921 extern void clisp_fin pro((void)); 922 extern void popYomiMode pro((uiContext)); 923 extern void freeTanContext pro((tanContext)); 924 extern void enterJishuMode pro((uiContext, yomiContext)); 925 extern void leaveJishuMode pro((uiContext, yomiContext)); 926 extern void finishTanKakutei pro((uiContext)); 927 extern void removeKana pro((uiContext, yomiContext, int, int)); 928 extern void clearHenkanContext pro((yomiContext)); 929 extern void doMuhenkan pro((uiContext, yomiContext)); 930 extern void removeCurrentBunsetsu pro((uiContext, tanContext)); 931 extern int uiUtilIchiranTooSmall pro((uiContext, int, mode_context)); 932 extern int dicTourokuHinshiDelivery pro((uiContext)); 933 extern int uuTTangoQuitCatch pro((uiContext, int, mode_context)); 934 extern void freeAndPopTouroku pro((uiContext)); 935 extern void popMountMode pro((uiContext)); 936 extern void freeDic pro((tourokuContext)); 937 938 /* for VC++ 4.0, by kon */ 939 extern int doFunc pro((uiContext, int)); 940 extern int _doFunc pro((uiContext, int)); 941 extern int _afterDoFunc pro((uiContext, int)); 942 extern int alphaMode pro((uiContext)); 943 extern void jrKanjiPipeError pro((void)); 944 extern int NoMoreMemory pro((void)); 945 extern int WCinit pro((void)); 946 extern int WStringOpen pro((void)); 947 extern void WStringClose pro((void)); 948 extern int WStrcmp pro((wchar_t *, wchar_t *)); 949 extern int WSfree pro((wchar_t *)); 950 extern void initModeNames pro((void)); 951 extern int initKeyTables pro((void)); 952 #ifdef BINARY_CUSTOM 953 extern int binparse pro((void)); 954 #else 955 extern void parse pro((void)); 956 #endif 957 extern int initIchiran pro((void)); 958 extern int RomkanaInit pro((void)); 959 extern void RomkanaFin pro((void)); 960 extern int KanjiInit pro((void)); 961 extern int KanjiFin pro((void)); 962 extern void resetModeNames pro((void)); 963 extern int escapeToBasicStat pro((uiContext, int)); 964 extern void EmptyBaseModeInfo pro((uiContext, yomiContext)); 965 extern void GlineClear pro((uiContext)); 966 extern void currentModeInfo pro((uiContext)); 967 extern int queryMode pro((uiContext, wchar_t *)); 968 extern int RkSetServerName pro((char *)); 969 extern int parse_string pro((char *)); 970 extern void RomajiStoreYomi pro((uiContext, wchar_t *, wchar_t *)); 971 extern int WWhatGPlain pro((wchar_t)); 972 extern int WIsG0 pro((wchar_t)), WIsG1 pro((wchar_t)); 973 extern int WIsG2 pro((wchar_t)), WIsG3 pro((wchar_t)); 974 extern int XwcKanjiControl2 975 pro((unsigned int, unsigned int, unsigned int, BYTE *)); 976 extern int XKanjiControl2 977 pro((unsigned int, unsigned int, unsigned int, BYTE *)); 978 extern int XwcLookupKanji2 pro((unsigned int, unsigned int, wchar_t *, int, 979 int, int, wcKanjiStatus *)); 980 extern int NothingChangedWithBeep pro((uiContext)); 981 extern int searchfunc pro((uiContext, KanjiMode, int, int, int)); 982 extern int initRomeStruct pro((uiContext, int)); 983 /* extern int kanjiControl pro((int, uiContext, caddr_t)); */ 984 extern int getBaseMode pro((yomiContext)); 985 extern int RkwMapPhonogram 986 pro((struct RkRxDic *, wchar_t *, int, wchar_t *, int, wchar_t, int, 987 int *, int *, int *, int *)); 988 extern int RkMapPhonogram 989 pro((struct RkRxDic *, unsigned char *, int, unsigned char *, int, 990 unsigned, int, 991 int *, int *, int *, int *)); 992 extern RkMapRoma 993 pro((struct RkRxDic *, unsigned char *, int, unsigned char *, int, 994 int, int *)); 995 extern int RkCvtRoma 996 pro((struct RkRxDic *, unsigned char *, int, unsigned char *, int, 997 unsigned)); 998 extern int RkwCvtRoma 999 pro((struct RkRxDic *, wchar_t *, int, wchar_t *, int, int)); 1000 extern int exitJishu pro((uiContext)); 1001 extern RomajiFlushYomi pro((uiContext, wchar_t *, int)); 1002 extern void generalReplace 1003 pro((wchar_t *, BYTE *, int *, int *, int *, int, wchar_t *, int, int)); 1004 extern ChikujiSubstYomi pro((uiContext)); 1005 extern TanMuhenkan pro((uiContext)); 1006 extern CANNA_mbstowcs pro((wchar_t *, char *, int)); 1007 extern CANNA_wcstombs pro((char *, wchar_t *, int)); 1008 extern makeRkError pro((uiContext, char *)); 1009 extern void moveStrings pro((wchar_t *, BYTE *, int, int, int)); 1010 extern TanBackwardBunsetsu pro((uiContext)); 1011 extern TbBackward pro((uiContext)); 1012 extern NothingChanged pro((uiContext)); 1013 extern TbEndOfLine pro((uiContext)); 1014 extern TanForwardBunsetsu pro((uiContext)); 1015 extern TbForward pro((uiContext)); 1016 extern TbBeginningOfLine pro((uiContext)); 1017 extern tanMuhenkan pro((uiContext, int)); 1018 extern extractTanString pro((tanContext, wchar_t *, wchar_t *)); 1019 extern extractTanYomi pro((tanContext, wchar_t *, wchar_t *)); 1020 extern extractTanRomaji pro((tanContext, wchar_t *, wchar_t *)); 1021 extern leaveAdjustMode pro((uiContext, yomiContext)); 1022 extern wchar_t *WStraddbcpy pro((wchar_t *, wchar_t *, int)); 1023 extern YomiExit pro((uiContext, int)); 1024 extern void clearYomiContext pro((yomiContext)); 1025 extern abandonContext pro((uiContext, yomiContext)); 1026 extern void RomajiClearYomi pro((uiContext)); 1027 extern RkCvtEuc pro((unsigned char *, int, unsigned char *, int)); 1028 extern RkCvtNone pro((unsigned char *, int, unsigned char *, int)); 1029 extern selectOne 1030 pro((uiContext, wchar_t **, int *, int, int, unsigned, int, int, 1031 canna_callback_t, canna_callback_t, canna_callback_t,canna_callback_t)); 1032 extern void makeGlineStatus pro((uiContext)); 1033 extern YomiMark pro((uiContext)); 1034 extern doHenkan pro((uiContext, int, wchar_t *)); 1035 extern tanKouhoIchiran pro((uiContext, int)); 1036 extern EmptyBaseKana pro((uiContext)); 1037 extern EmptyBaseKakutei pro((uiContext)); 1038 extern EmptyBaseHenkan pro((uiContext)); 1039 extern WToupper pro((wchar_t)); 1040 extern WTolower pro((wchar_t)); 1041 extern TanKakutei pro((uiContext)); 1042 extern Yomisearchfunc pro((uiContext, KanjiMode, int, int, int)); 1043 extern CNvW2E pro((wchar_t *, int, char *, int)); 1044 extern void initKigoTable pro((void)); 1045 extern NothingForGLine pro((uiContext)); 1046 extern NothingForGLineWithBeep pro((uiContext)); 1047 extern void echostrClear pro((uiContext)); 1048 extern void freeGetIchiranList pro((wchar_t **)); 1049 extern TanKouhoIchiran pro((uiContext)); 1050 extern GLineNGReturn pro((uiContext)); 1051 extern GLineNGReturnFI pro((uiContext)); 1052 extern appendTan2Yomi pro((tanContext, yomiContext)); 1053 extern confirmContext pro((uiContext, yomiContext)); 1054 extern ChikujiTanDeletePrevious pro((uiContext)); 1055 extern YomiKakutei pro((uiContext)); 1056 extern YomiInsert pro((uiContext)); 1057 extern cutOffLeftSide pro((uiContext, yomiContext, int)); 1058 extern enterAdjustMode pro((uiContext, yomiContext)); 1059 extern TanNextKouho pro((uiContext)); 1060 extern TanPreviousKouho pro((uiContext)); 1061 extern TanBeginningOfBunsetsu pro((uiContext)); 1062 extern TanEndOfBunsetsu pro((uiContext)); 1063 extern TanDeletePrevious pro((uiContext)); 1064 extern TanBubunMuhenkan pro((uiContext)); 1065 extern xString pro((wchar_t *, int, wchar_t *, wchar_t *)); 1066 extern KanaDeletePrevious pro((uiContext)); 1067 extern findSup pro((wchar_t)); 1068 extern selectKeysup pro((uiContext, yomiContext, int)); 1069 extern containUnconvertedKey pro((yomiContext)); 1070 extern CYsearchfunc pro((uiContext, KanjiMode, int, int, int)); 1071 extern TanBubunKakutei pro((uiContext)); 1072 extern TanZenkaku pro((uiContext)); 1073 extern TanHankaku pro((uiContext)); 1074 extern TanHiragana pro((uiContext)); 1075 extern TanKatakana pro((uiContext)); 1076 extern TanRomaji pro((uiContext)); 1077 extern TanUpper pro((uiContext)); 1078 extern TanCapitalize pro((uiContext)); 1079 extern TanPrintBunpou pro((uiContext)); 1080 extern TanNop pro((uiContext)); 1081 extern YomiQuotedInsert pro((uiContext)); 1082 extern AlphaMode pro((uiContext)); 1083 extern HenkanNyuryokuMode pro((uiContext)); 1084 extern KigoIchiran pro((uiContext)); 1085 extern UiUtilMode pro((uiContext)); 1086 extern EmptyBaseHira pro((uiContext)); 1087 extern EmptyBaseKata pro((uiContext)); 1088 extern EmptyBaseEisu pro((uiContext)); 1089 extern EmptyBaseZen pro((uiContext)); 1090 extern EmptyBaseHan pro((uiContext)); 1091 extern YomiBaseHiraKataToggle pro((uiContext)); 1092 extern YomiBaseZenHanToggle pro((uiContext)); 1093 extern YomiBaseKanaEisuToggle pro((uiContext)); 1094 extern YomiBaseKakuteiHenkanToggle pro((uiContext)); 1095 extern YomiBaseRotateForw pro((uiContext)); 1096 extern YomiBaseRotateBack pro((uiContext)); 1097 extern DoFuncSequence pro((uiContext)); 1098 extern YomiModeBackup pro((uiContext)); 1099 extern UseOtherKeymap pro((uiContext)); 1100 extern JapaneseMode pro((uiContext)); 1101 extern void ichiranFin pro((uiContext)); 1102 extern IchiranForwardKouho pro((uiContext)); 1103 extern IchiranBackwardKouho pro((uiContext)); 1104 extern IchiranNextKouhoretsu pro((uiContext)); 1105 extern IchiranPreviousKouhoretsu pro((uiContext)); 1106 extern IchiranBeginningOfKouho pro((uiContext)); 1107 extern IchiranEndOfKouho pro((uiContext)); 1108 extern IchiranQuit pro((uiContext)); 1109 extern IchiranNop pro((uiContext)); 1110 extern RkwCvtNone pro((wchar_t *, int, wchar_t *, int)); 1111 extern RkwSetAppName pro((int, char *)); 1112 extern void close_engine pro((void)); 1113 extern char *KanjiInitError pro((void)); 1114 extern void prepare_autodic pro((void)); 1115 extern int doKakutei 1116 pro((uiContext, tanContext, tanContext, wchar_t *, wchar_t *, yomiContext *)); 1117 extern int EUCListCallback pro((char *, int, wchar_t **, int, int *)); 1118 #if SUPPORT_OLD_WCHAR 1119 extern int owcListCallback pro((char *, int, wchar_t **, int, int *)); 1120 #endif 1121 1122 #endif /* _UTIL_FUNCTIONS_DEF_ */ 1123 1124 #ifndef wchar_t 1125 # error "wchar_t is already undefined" 1126 #endif 1127 #undef wchar_t 1128 /********************************************************************* 1129 * wchar_t replace end * 1130 *********************************************************************/ 1131 #endif /* !_CANNA_H_ */ 1132