X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fmule-canna.c;h=c2eb8d301c04d51c7070b4d29fbd8d8c1e2fa2a9;hb=1e829cf9008ec87e1ef618f30d0821d6c802b695;hp=7ad6409f9d16adb1dacf1efb7f7e9ec19b55f519;hpb=2e3e3f9ee27fec50f45c282d71eaddf7c673bc56;p=chise%2Fxemacs-chise.git.1 diff --git a/src/mule-canna.c b/src/mule-canna.c index 7ad6409..c2eb8d3 100644 --- a/src/mule-canna.c +++ b/src/mule-canna.c @@ -1,4 +1,4 @@ -/* CANNA interface +/* CANNA interface -*- coding: euc-jp -*- Copyright (C) 1995 Free Software Foundation, Inc. Copyright (C) 1995 Sun Microsystems, Inc. @@ -22,9 +22,11 @@ Boston, MA 02111-1307, USA. */ /* Synched up with: Mule 2.3. Not in FSF. */ -/* #### The comments in this file are mostly in EUC-formatted Japanese. - It would be ***soooo*** much nicer if someone could translate - them ... */ +/* Japanese comments were translated 2000-12-06 by Stephen Turnbull + . I haven't verified that the Japanese comments + were correct. YMMV, NO WARRANTY, not even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. (^^;;; as the + Japanese say. */ /* @@ -165,37 +167,39 @@ Boston, MA 02111-1307, USA. */ #endif /* !CANNA2 */ extern char *jrKanjiError; +/* #### is this global really necessary? */ #define KEYTOSTRSIZE 2048 -static unsigned char buf[KEYTOSTRSIZE]; +static unsigned char key_buffer[KEYTOSTRSIZE]; static char **warning; -static int Vcanna_empty_info, Vcanna_through_info; -static int Vcanna_underline; -static int Vcanna_inhibit_hankakukana; +static int canna_empty_info, canna_through_info; +static int canna_underline; +static int canna_inhibit_hankakukana; static Lisp_Object Vcanna_kakutei_string; static Lisp_Object Vcanna_kakutei_yomi; static Lisp_Object Vcanna_kakutei_romaji; static Lisp_Object Vcanna_henkan_string; -static int Vcanna_henkan_length; -static int Vcanna_henkan_revPos; -static int Vcanna_henkan_revLen; +static Fixnum canna_henkan_length; +static Fixnum canna_henkan_revPos; +static Fixnum canna_henkan_revLen; static Lisp_Object Vcanna_ichiran_string; -static int Vcanna_ichiran_length; -static int Vcanna_ichiran_revPos; -static int Vcanna_ichiran_revLen; +static Fixnum canna_ichiran_length; +static Fixnum canna_ichiran_revPos; +static Fixnum canna_ichiran_revLen; static Lisp_Object Vcanna_mode_string; static int IRCP_context; static Lisp_Object storeResults (unsigned char *, int, jrKanjiStatus *); static Lisp_Object kanjiYomiList (int, int); +static Lisp_Object CANNA_mode_keys (void); #ifdef CANNA_MULE static void m2c (unsigned char *, int, unsigned char *); static Lisp_Object mule_make_string (unsigned char *, int); static int mule_strlen (unsigned char *, int); -static void count_char (unsigned char *,int, int, int, int *, int *, int *); +static void count_char (unsigned char *,int, int, int, Fixnum *, Fixnum *, Fixnum *); #define make_string mule_make_string #endif @@ -213,8 +217,8 @@ variables. int len; CHECK_CHAR_COERCE_INT (ch); - len = jrKanjiString (0, XCHAR (ch), buf, KEYTOSTRSIZE, &ks); - return storeResults (buf, len, &ks); + len = jrKanjiString (0, XCHAR (ch), key_buffer, KEYTOSTRSIZE, &ks); + return storeResults (key_buffer, len, &ks); } static Lisp_Object @@ -228,10 +232,11 @@ storeResults (unsigned char *buf, int len, jrKanjiStatus *ks) } else { - /* ³ÎÄꤷ¤¿Ê¸»úÎó */ + /* ³ÎÄꤷ¤¿Ê¸»úÎó (the confirmed string) */ Vcanna_kakutei_string = make_string (buf, len); val = make_int (len); - /* ³ÎÄꤷ¤¿Ê¸»úÎó¤ÎÆɤߤξðÊó... */ + /* ³ÎÄꤷ¤¿Ê¸»úÎó¤ÎÆɤߤξðÊó... + (info about the reading of the confirmed string) */ Vcanna_kakutei_yomi = Vcanna_kakutei_romaji = Qnil; if (ks->info & KanjiYomiInfo) { @@ -242,68 +247,74 @@ storeResults (unsigned char *buf, int len, jrKanjiStatus *ks) { int yomilen2; - Vcanna_kakutei_yomi = make_string (p, yomilen); /* ÆÉ¤ß */ + Vcanna_kakutei_yomi = make_string (p, yomilen); /* ÆÉ¤ß + (reading) */ p += yomilen + 1; yomilen2 = strlen (p); if (len + yomilen + yomilen2 + 2 < KEYTOSTRSIZE) { - Vcanna_kakutei_romaji = make_string (p, yomilen2); /* ¥í¡¼¥Þ»ú */ + Vcanna_kakutei_romaji = make_string (p, yomilen2); + /* ¥í¡¼¥Þ»ú (romanization) */ } } } - /* ¸õÊäɽ¼¨¤Îʸ»úÎó¤Ç¤¹¡£*/ + /* ¸õÊäɽ¼¨¤Îʸ»úÎó¤Ç¤¹¡£ + (string for displaying candidate translations) */ Vcanna_henkan_string = Qnil; if (ks->length >= 0) { Vcanna_henkan_string = make_string (ks->echoStr, ks->length); #ifndef CANNA_MULE - Vcanna_henkan_length = ks->length; - Vcanna_henkan_revPos = ks->revPos; - Vcanna_henkan_revLen = ks->revLen; + canna_henkan_length = ks->length; + canna_henkan_revPos = ks->revPos; + canna_henkan_revLen = ks->revLen; #else /* CANNA_MULE */ - if (Vcanna_underline) + if (canna_underline) { - Vcanna_henkan_length = mule_strlen (ks->echoStr,ks->length); - Vcanna_henkan_revPos = mule_strlen (ks->echoStr,ks->revPos); - Vcanna_henkan_revLen = mule_strlen (ks->echoStr+ks->revPos,ks->revLen); + canna_henkan_length = mule_strlen (ks->echoStr,ks->length); + canna_henkan_revPos = mule_strlen (ks->echoStr,ks->revPos); + canna_henkan_revLen = mule_strlen (ks->echoStr+ks->revPos, + ks->revLen); } else { count_char (ks->echoStr, ks->length, ks->revPos, ks->revLen, - &Vcanna_henkan_length, &Vcanna_henkan_revPos, - &Vcanna_henkan_revLen); + &canna_henkan_length, &canna_henkan_revPos, + &canna_henkan_revLen); } #endif /* CANNA_MULE */ } - /* °ìÍ÷¤Î¾ðÊó */ + /* °ìÍ÷¤Î¾ðÊó (information about the echo area menu) */ Vcanna_ichiran_string = Qnil; if (ks->info & KanjiGLineInfo && ks->gline.length >= 0) { - Vcanna_ichiran_string = make_string (ks->gline.line, ks->gline.length); + Vcanna_ichiran_string = make_string (ks->gline.line, + ks->gline.length); #ifndef CANNA_MULE - Vcanna_ichiran_length = ks->gline.length; - Vcanna_ichiran_revPos = ks->gline.revPos; - Vcanna_ichiran_revLen = ks->gline.revLen; + canna_ichiran_length = ks->gline.length; + canna_ichiran_revPos = ks->gline.revPos; + canna_ichiran_revLen = ks->gline.revLen; #else /* CANNA_MULE */ count_char (ks->gline.line, ks->gline.length, - ks->gline.revPos, ks->gline.revLen, &Vcanna_ichiran_length, - &Vcanna_ichiran_revPos, &Vcanna_ichiran_revLen); + ks->gline.revPos, ks->gline.revLen, + &canna_ichiran_length, + &canna_ichiran_revPos, &canna_ichiran_revLen); #endif /* CANNA_MULE */ } - /* ¥â¡¼¥É¤Î¾ðÊó */ + /* ¥â¡¼¥É¤Î¾ðÊó (mode information) */ Vcanna_mode_string = Qnil; if (ks->info & KanjiModeInfo) { Vcanna_mode_string = make_string (ks->mode, strlen (ks->mode)); } - /* ¤½¤Î¾¤Î¾ðÊó */ - Vcanna_empty_info = (ks->info & KanjiEmptyInfo) ? 1 : 0; - Vcanna_through_info = (ks->info & KanjiThroughInfo) ? 1 : 0; + /* ¤½¤Î¾¤Î¾ðÊó (other information) */ + canna_empty_info = (ks->info & KanjiEmptyInfo) ? 1 : 0; + canna_through_info = (ks->info & KanjiThroughInfo) ? 1 : 0; } return val; @@ -316,7 +327,7 @@ No separator will be used otherwise. */ (num)) { - int kugiri; /* ʸÀá¶èÀÚ¤ê¤ò¤¹¤ë¤«¡© */ + int kugiri; /* ʸÀá¶èÀÚ¤ê¤ò¤¹¤ë¤«¡© (display clause separator?) */ kugiri = NILP (num) ? 0 : 1; @@ -326,10 +337,9 @@ No separator will be used otherwise. } /* For whatever reason, calling Fding directly from libCanna loses */ -static void call_Fding() +static void +call_Fding (void) { - extern Lisp_Object Fding(); - Fding (Qnil, Qnil, Qnil); } @@ -348,7 +358,7 @@ If nil is specified for each arg, the default value will be used. int res; unsigned char **p, **q; - int kugiri; /* ʸÀá¶èÀÚ¤ê¤ò¤¹¤ë¤«¡© */ + int kugiri; /* ʸÀá¶èÀÚ¤ê¤ò¤¹¤ë¤«¡© (display clause separator?) */ IRCP_context = -1; @@ -372,8 +382,8 @@ If nil is specified for each arg, the default value will be used. char servername[256]; CHECK_STRING (server); - strncpy (servername, XSTRING (server)->_data, XSTRING (server)->_size); - servername[XSTRING (server)->_size] = '\0'; + strncpy (servername, XSTRING_DATA (server), XSTRING_LENGTH (server)); + servername[XSTRING_LENGTH (server)] = '\0'; jrKanjiControl (0, KC_SETSERVERNAME, servername); } @@ -386,8 +396,8 @@ If nil is specified for each arg, the default value will be used. char rcname[256]; CHECK_STRING (rcfile); - strncpy (rcname, XSTRING (rcfile)->_data, XSTRING (rcfile)->_size); - rcname[XSTRING (rcfile)->_size] = '\0'; + strncpy (rcname, XSTRING_DATA (rcfile), XSTRING_LENGTH (rcfile)); + rcname[XSTRING_LENGTH (rcfile)] = '\0'; jrKanjiControl (0, KC_SETINITFILENAME, rcname); } @@ -414,15 +424,14 @@ If nil is specified for each arg, the default value will be used. if (res == -1) { - val = Fcons (make_string ((unsigned char*) jrKanjiError, + val = Fcons (make_string ((unsigned char*) jrKanjiError, strlen (jrKanjiError)), val); - /* ¥¤¥Ë¥·¥ã¥é¥¤¥º¤Ç¼ºÇÔ¤·¤¿¾ì¹ç¡£ */ + /* ¥¤¥Ë¥·¥ã¥é¥¤¥º¤Ç¼ºÇÔ¤·¤¿¾ì¹ç¡£ (on initialization failure) */ return Fcons (Qnil, val); } else { - extern void (*jrBeepFunc)(); - Lisp_Object CANNA_mode_keys (); + extern void (*jrBeepFunc) (void); jrBeepFunc = call_Fding; @@ -439,11 +448,14 @@ If nil is specified for each arg, the default value will be used. #ifndef CANNA_MULE jrKanjiControl (0, KC_INHIBITHANKAKUKANA, (char *) 1); #else - /* mule ¤À¤Ã¤¿¤éȾ³Ñ¥«¥¿¥«¥Ê¤â»È¤¨¤ë */ - if (Vcanna_inhibit_hankakukana) + /* mule ¤À¤Ã¤¿¤éȾ³Ñ¥«¥¿¥«¥Ê¤â»È¤¨¤ë + (Mule can use half-width katakana) */ + if (canna_inhibit_hankakukana) jrKanjiControl (0, KC_INHIBITHANKAKUKANA, (char *) 1); #endif - jrKanjiControl (0, KC_YOMIINFO, (char *) 2); /* ¢¨£²: ¥í¡¼¥Þ»ú¤Þ¤ÇÊÖ¤¹ */ + jrKanjiControl (0, KC_YOMIINFO, (char *) 2); /* ¢¨£²: ¥í¡¼¥Þ»ú¤Þ¤ÇÊÖ¤¹ + (*2: return to + romanized form) */ val = Fcons (Qnil, val); return Fcons (CANNA_mode_keys (), val); } @@ -487,24 +499,24 @@ Register Kanji words into kana-to-kanji conversion dictionary. #endif CHECK_STRING (str); - ksv.buffer = (unsigned char *) buf; + ksv.buffer = (unsigned char *) key_buffer; ksv.bytes_buffer = KEYTOSTRSIZE; #ifndef CANNA_MULE - ks.echoStr = XSTRING (str)->_data; - ks.length = XSTRING (str)->_size; + ks.echoStr = XSTRING_DATA (str); + ks.length = XSTRING_LENGTH (str); #else /* CANNA_MULE */ - m2c (XSTRING (str)->_data, XSTRING (str)->_size, cbuf); + m2c (XSTRING_DATA (str), XSTRING_LENGTH (str), cbuf); ks.echoStr = cbuf; ks.length = strlen (cbuf); #endif /* CANNA_MULE */ ksv.ks = &ks; len = jrKanjiControl (0, KC_DEFINEKANJI, (char *)&ksv); - val = storeResults (buf, ksv.val, ksv.ks); + val = storeResults (key_buffer, ksv.val, ksv.ks); return val; } DEFUN ("canna-set-width", Fcanna_set_width, 1, 1, 0, /* -Set status-line width information, which is used to display +Set status-line width information, which is used to display kanji candidates. */ (num)) @@ -526,16 +538,16 @@ Change Japanese pre-edit mode. CHECK_INT (num); - ksv.buffer = (unsigned char *) buf; + ksv.buffer = (unsigned char *) key_buffer; ksv.bytes_buffer = KEYTOSTRSIZE; ksv.ks = &ks; ksv.val = XINT (num); jrKanjiControl (0, KC_CHANGEMODE, (char *)&ksv); - val = storeResults (buf, ksv.val, ksv.ks); + val = storeResults (key_buffer, ksv.val, ksv.ks); return val; } -Lisp_Object +static Lisp_Object CANNA_mode_keys (void) { #define CANNAWORKBUFSIZE 32 @@ -564,12 +576,12 @@ Store yomi characters as a YOMI of kana-to-kanji conversion. CHECK_STRING (yomi); #ifndef CANNA_MULE - strncpy (buf, XSTRING (yomi)->_data, XSTRING (yomi)->_size); - ks.length = XSTRING (yomi)->_size; - buf[ks.length] = '\0'; + strncpy (key_buffer, XSTRING_DATA (yomi), XSTRING_LENGTH (yomi)); + ks.length = XSTRING_LENGTH (yomi); + key_buffer[ks.length] = '\0'; #else /* CANNA_MULE */ - m2c (XSTRING (yomi)->_data, XSTRING (yomi)->_size, buf); - ks.length = strlen (buf); + m2c (XSTRING_DATA (yomi), XSTRING_LENGTH (yomi), key_buffer); + ks.length = strlen (key_buffer); #endif /* CANNA_MULE */ if (NILP (roma)) @@ -581,24 +593,24 @@ Store yomi characters as a YOMI of kana-to-kanji conversion. CHECK_STRING (roma); #ifndef CANNA_MULE - strncpy (buf + XSTRING (yomi)->_size + 1, XSTRING (roma)->_data, - XSTRING (roma)->_size); - buf[XSTRING (yomi)->_size + 1 + XSTRING (roma)->_size] = '\0'; - ks.mode = (unsigned char *)(buf + XSTRING (yomi)->_size + 1); + strncpy (key_buffer + XSTRING_LENGTH (yomi) + 1, XSTRING_DATA (roma), + XSTRING_LENGTH (roma)); + key_buffer[XSTRING_LENGTH (yomi) + 1 + XSTRING_LENGTH (roma)] = '\0'; + ks.mode = (unsigned char *)(key_buffer + XSTRING_LENGTH (yomi) + 1); #else /* CANNA_MULE */ - ks.mode = (unsigned char *)(buf + ks.length + 1); - m2c (XSTRING (roma)->_data, XSTRING (roma)->_size, ks.mode); + ks.mode = (unsigned char *)(key_buffer + ks.length + 1); + m2c (XSTRING_DATA (roma), XSTRING_LENGTH (roma), ks.mode); #endif /* CANNA_MULE */ } - ks.echoStr = (unsigned char *) buf; - ksv.buffer = (unsigned char *) buf; /* ÊÖÃÍÍÑ */ + ks.echoStr = (unsigned char *) key_buffer; + ksv.buffer = (unsigned char *) key_buffer; /* ÊÖÃÍÍÑ (return value) */ ksv.bytes_buffer = KEYTOSTRSIZE; ksv.ks = &ks; jrKanjiControl (0, KC_STOREYOMI, (char *)&ksv); - return storeResults (buf, ksv.val, ksv.ks); + return storeResults (key_buffer, ksv.val, ksv.ks); } DEFUN ("canna-do-function", Fcanna_do_function, 1, 2, 0, /* @@ -614,20 +626,20 @@ Do specified function at current mode. if (NILP (ch)) { - *buf = '@'; + *key_buffer = '@'; } else { CHECK_CHAR (ch); - *buf = XCHAR (ch); + *key_buffer = XCHAR (ch); } - ksv.buffer = (unsigned char *) buf; + ksv.buffer = (unsigned char *) key_buffer; ksv.bytes_buffer = KEYTOSTRSIZE; ksv.ks = &ks; ksv.val = XINT (num); jrKanjiControl (0, KC_DO, (char *) &ksv); - val = storeResults (buf, ksv.val, ksv.ks); + val = storeResults (key_buffer, ksv.val, ksv.ks); return val; } @@ -643,12 +655,12 @@ Parse customize string. CHECK_STRING (str); #ifndef CANNA_MULE - strncpy (buf, XSTRING (str)->_data, XSTRING (str)->_size); - buf[XSTRING (str)->_size] = '\0'; + strncpy (key_buffer, XSTRING_DATA (str), XSTRING_LENGTH (str)); + key_buffer[XSTRING_LENGTH (str)] = '\0'; #else /* CANNA_MULE */ - m2c (XSTRING (str)->_data, XSTRING (str)->_size, buf); + m2c (XSTRING_DATA (str), XSTRING_LENGTH (str), key_buffer); #endif /* CANNA_MULE */ - p = (unsigned char**) buf; + p = (unsigned char**) key_buffer; n = jrKanjiControl (0, KC_PARSE, (char *) &p); val = Qnil; while (n > 0) @@ -718,7 +730,8 @@ byteLen (int bun, int len) } DEFUN ("canna-henkan-begin", Fcanna_henkan_begin, 1, 1, 0, /* -¤«¤Ê´Á»úÊÑ´¹¤·¤¿·ë²Ì¤òÊÖ´Ô¤¹¤ë¡£Ê¸ÀáÀڤ꤬¤·¤Æ¤¢¤ë¡£ +Return the result of kana-to-kanji conversion. +Clause separator is set. */ (yomi)) { @@ -730,12 +743,12 @@ DEFUN ("canna-henkan-begin", Fcanna_henkan_begin, 1, 1, 0, /* return Qnil; } #ifndef CANNA_MULE - strncpy (yomibuf, XSTRING (yomi)->_data, XSTRING (yomi)->_size); - yomibuf[XSTRING (yomi)->_size] = '\0'; - nbun = RkBgnBun (IRCP_context, XSTRING (yomi)->_data, XSTRING (yomi)->_size, + strncpy (yomibuf, XSTRING_DATA (yomi), XSTRING_LENGTH (yomi)); + yomibuf[XSTRING_LENGTH (yomi)] = '\0'; + nbun = RkBgnBun (IRCP_context, XSTRING_DATA (yomi), XSTRING_LENGTH (yomi), (RK_XFER << RK_XFERBITS) | RK_KFER); #else /* CANNA_MULE */ - m2c (XSTRING (yomi)->_data, XSTRING (yomi)->_size, yomibuf); + m2c (XSTRING_DATA (yomi), XSTRING_LENGTH (yomi), yomibuf); nbun = RkBgnBun (IRCP_context, (char *) yomibuf, strlen (yomibuf), (RK_XFER << RK_XFERBITS) | RK_KFER); #endif /* CANNA_MULE */ @@ -773,7 +786,7 @@ kanjiYomiList (int context, int nbun) } DEFUN ("canna-henkan-next", Fcanna_henkan_next, 1, 1, 0, /* -¸õÊä°ìÍ÷¤òµá¤á¤ë¡£ +Return the list of candidates. */ (bunsetsu)) { @@ -798,7 +811,7 @@ DEFUN ("canna-henkan-next", Fcanna_henkan_next, 1, 1, 0, /* } else { - endp = XCDR (endp) = Fcons (make_string (p, slen), Qnil); + endp = XCDR (res) = Fcons (make_string (p, slen), Qnil); } p += slen + 1; } @@ -806,7 +819,7 @@ DEFUN ("canna-henkan-next", Fcanna_henkan_next, 1, 1, 0, /* } DEFUN ("canna-bunsetu-henkou", Fcanna_bunsetu_henkou, 2, 2, 0, /* -ʸÀá¤ÎŤµ¤ò»ØÄꤹ¤ë¡£ +Specify the length of a clause. */ (bunsetsu, bunlen)) { @@ -814,7 +827,7 @@ DEFUN ("canna-bunsetu-henkou", Fcanna_bunsetu_henkou, 2, 2, 0, /* CHECK_INT (bunsetsu); CHECK_INT (bunlen); - + nbun = XINT (bunsetsu); if (confirmContext () == 0) { @@ -826,7 +839,7 @@ DEFUN ("canna-bunsetu-henkou", Fcanna_bunsetu_henkou, 2, 2, 0, /* } DEFUN ("canna-henkan-kakutei", Fcanna_henkan_kakutei, 2, 2, 0, /* -¸õÊäÁªÂò¡£ +Select a candidate. */ (bun, kouho)) { @@ -845,7 +858,7 @@ DEFUN ("canna-henkan-kakutei", Fcanna_henkan_kakutei, 2, 2, 0, /* } DEFUN ("canna-henkan-end", Fcanna_henkan_end, 0, 0, 0, /* -ÊÑ´¹½ªÎ»¡£ +End conversion. */ ()) { @@ -853,12 +866,14 @@ DEFUN ("canna-henkan-end", Fcanna_henkan_end, 0, 0, 0, /* { return Qnil; } - RkEndBun (IRCP_context, 1); /* ³Ø½¬¤Ï¤¤¤Ä¤Ç¤â¹Ô¤Ã¤ÆÎɤ¤¤â¤Î¤Ê¤Î¤«¡© */ + RkEndBun (IRCP_context, 1); /* ³Ø½¬¤Ï¤¤¤Ä¤Ç¤â¹Ô¤Ã¤ÆÎɤ¤¤â¤Î¤Ê¤Î¤«¡© + (is it OK to invoke learning function + at arbitrary times?) */ return Qt; } DEFUN ("canna-henkan-quit", Fcanna_henkan_quit, 0, 0, 0, /* -ÊÑ´¹½ªÎ»¡£ +Quit conversion. */ ()) { @@ -872,150 +887,149 @@ DEFUN ("canna-henkan-quit", Fcanna_henkan_quit, 0, 0, 0, /* /* variables below this line is constants of Canna */ -static int Vcanna_mode_AlphaMode = IROHA_MODE_AlphaMode; -static int Vcanna_mode_EmptyMode = IROHA_MODE_EmptyMode; -static int Vcanna_mode_KigoMode = IROHA_MODE_KigoMode; -static int Vcanna_mode_YomiMode = IROHA_MODE_YomiMode; -static int Vcanna_mode_JishuMode = IROHA_MODE_JishuMode; -static int Vcanna_mode_TankouhoMode = IROHA_MODE_TankouhoMode; -static int Vcanna_mode_IchiranMode = IROHA_MODE_IchiranMode; -static int Vcanna_mode_YesNoMode = IROHA_MODE_YesNoMode; -static int Vcanna_mode_OnOffMode = IROHA_MODE_OnOffMode; +static Fixnum canna_mode_AlphaMode; +static Fixnum canna_mode_EmptyMode; +static Fixnum canna_mode_KigoMode; +static Fixnum canna_mode_YomiMode; +static Fixnum canna_mode_JishuMode; +static Fixnum canna_mode_TankouhoMode; +static Fixnum canna_mode_IchiranMode; +static Fixnum canna_mode_YesNoMode; +static Fixnum canna_mode_OnOffMode; #ifdef CANNA_MODE_AdjustBunsetsuMode -static int Vcanna_mode_AdjustBunsetsuMode = CANNA_MODE_AdjustBunsetsuMode; +static Fixnum canna_mode_AdjustBunsetsuMode; #endif #ifdef CANNA_MODE_ChikujiYomiMode -static int Vcanna_mode_ChikujiYomiMode = CANNA_MODE_ChikujiYomiMode; -static int Vcanna_mode_ChikujiTanMode = CANNA_MODE_ChikujiTanMode; +static Fixnum canna_mode_ChikujiYomiMode; +static Fixnum canna_mode_ChikujiTanMode; #endif -static int Vcanna_mode_HenkanMode = IROHA_MODE_HenkanMode; +static Fixnum canna_mode_HenkanMode; #ifdef CANNA_MODE_HenkanNyuryokuMode -static int Vcanna_mode_HenkanNyuryokuMode = CANNA_MODE_HenkanNyuryokuMode; +static Fixnum canna_mode_HenkanNyuryokuMode; #endif #ifdef CANNA_MODE_ZenHiraHenkanMode -static int Vcanna_mode_ZenHiraHenkanMode = CANNA_MODE_ZenHiraHenkanMode; +static Fixnum canna_mode_ZenHiraHenkanMode; #ifdef CANNA_MODE_HanHiraHenkanMode -static int Vcanna_mode_HanHiraHenkanMode = CANNA_MODE_HanHiraHenkanMode; +static Fixnum canna_mode_HanHiraHenkanMode; #endif -static int Vcanna_mode_ZenKataHenkanMode = CANNA_MODE_ZenKataHenkanMode; -static int Vcanna_mode_HanKataHenkanMode = CANNA_MODE_HanKataHenkanMode; -static int Vcanna_mode_ZenAlphaHenkanMode = CANNA_MODE_ZenAlphaHenkanMode; -static int Vcanna_mode_HanAlphaHenkanMode = CANNA_MODE_HanAlphaHenkanMode; +static Fixnum canna_mode_ZenKataHenkanMode; +static Fixnum canna_mode_HanKataHenkanMode; +static Fixnum canna_mode_ZenAlphaHenkanMode; +static Fixnum canna_mode_HanAlphaHenkanMode; #endif -static int Vcanna_mode_ZenHiraKakuteiMode = IROHA_MODE_ZenHiraKakuteiMode; +static Fixnum canna_mode_ZenHiraKakuteiMode; #ifdef CANNA_MODE_HanHiraKakuteiMode -static int Vcanna_mode_HanHiraKakuteiMode = CANNA_MODE_HanHiraKakuteiMode; +static Fixnum canna_mode_HanHiraKakuteiMode; #endif -static int Vcanna_mode_ZenKataKakuteiMode = IROHA_MODE_ZenKataKakuteiMode; -static int Vcanna_mode_HanKataKakuteiMode = IROHA_MODE_HanKataKakuteiMode; -static int Vcanna_mode_ZenAlphaKakuteiMode = IROHA_MODE_ZenAlphaKakuteiMode; -static int Vcanna_mode_HanAlphaKakuteiMode = IROHA_MODE_HanAlphaKakuteiMode; -static int Vcanna_mode_HexMode = IROHA_MODE_HexMode; -static int Vcanna_mode_BushuMode = IROHA_MODE_BushuMode; -static int Vcanna_mode_ExtendMode = IROHA_MODE_ExtendMode; -static int Vcanna_mode_RussianMode = IROHA_MODE_RussianMode; -static int Vcanna_mode_GreekMode = IROHA_MODE_GreekMode; -static int Vcanna_mode_LineMode = IROHA_MODE_LineMode; -static int Vcanna_mode_ChangingServerMode = IROHA_MODE_ChangingServerMode; -static int Vcanna_mode_HenkanMethodMode = IROHA_MODE_HenkanMethodMode; -static int Vcanna_mode_DeleteDicMode = IROHA_MODE_DeleteDicMode; -static int Vcanna_mode_TourokuMode = IROHA_MODE_TourokuMode; -static int Vcanna_mode_TourokuEmptyMode = IROHA_MODE_TourokuEmptyMode; -static int Vcanna_mode_TourokuHinshiMode = IROHA_MODE_TourokuHinshiMode; -static int Vcanna_mode_TourokuDicMode = IROHA_MODE_TourokuDicMode; -static int Vcanna_mode_QuotedInsertMode = IROHA_MODE_QuotedInsertMode; -static int Vcanna_mode_BubunMuhenkanMode = IROHA_MODE_BubunMuhenkanMode; -static int Vcanna_mode_MountDicMode = IROHA_MODE_MountDicMode; - -static int Vcanna_fn_SelfInsert = IROHA_FN_SelfInsert; -static int Vcanna_fn_FunctionalInsert = IROHA_FN_FunctionalInsert; -static int Vcanna_fn_QuotedInsert = IROHA_FN_QuotedInsert; -static int Vcanna_fn_JapaneseMode = IROHA_FN_JapaneseMode; -static int Vcanna_fn_AlphaMode = IROHA_FN_AlphaMode; -static int Vcanna_fn_HenkanNyuryokuMode = IROHA_FN_HenkanNyuryokuMode; -static int Vcanna_fn_Forward = IROHA_FN_Forward; -static int Vcanna_fn_Backward = IROHA_FN_Backward; -static int Vcanna_fn_Next = IROHA_FN_Next; -static int Vcanna_fn_Prev = IROHA_FN_Prev; -static int Vcanna_fn_BeginningOfLine = IROHA_FN_BeginningOfLine; -static int Vcanna_fn_EndOfLine = IROHA_FN_EndOfLine; -static int Vcanna_fn_DeleteNext = IROHA_FN_DeleteNext; -static int Vcanna_fn_DeletePrevious = IROHA_FN_DeletePrevious; -static int Vcanna_fn_KillToEndOfLine = IROHA_FN_KillToEndOfLine; -static int Vcanna_fn_Henkan = IROHA_FN_Henkan; -static int Vcanna_fn_Kakutei = IROHA_FN_Kakutei; -static int Vcanna_fn_Extend = IROHA_FN_Extend; -static int Vcanna_fn_Shrink = IROHA_FN_Shrink; +static Fixnum canna_mode_ZenKataKakuteiMode; +static Fixnum canna_mode_HanKataKakuteiMode; +static Fixnum canna_mode_ZenAlphaKakuteiMode; +static Fixnum canna_mode_HanAlphaKakuteiMode; +static Fixnum canna_mode_HexMode; +static Fixnum canna_mode_BushuMode; +static Fixnum canna_mode_ExtendMode; +static Fixnum canna_mode_RussianMode; +static Fixnum canna_mode_GreekMode; +static Fixnum canna_mode_LineMode; +static Fixnum canna_mode_ChangingServerMode; +static Fixnum canna_mode_HenkanMethodMode; +static Fixnum canna_mode_DeleteDicMode; +static Fixnum canna_mode_TourokuMode; +static Fixnum canna_mode_TourokuEmptyMode; +static Fixnum canna_mode_TourokuHinshiMode; +static Fixnum canna_mode_TourokuDicMode; +static Fixnum canna_mode_QuotedInsertMode; +static Fixnum canna_mode_BubunMuhenkanMode; +static Fixnum canna_mode_MountDicMode; + +static Fixnum canna_fn_SelfInsert; +static Fixnum canna_fn_FunctionalInsert; +static Fixnum canna_fn_QuotedInsert; +static Fixnum canna_fn_JapaneseMode; +static Fixnum canna_fn_AlphaMode; +static Fixnum canna_fn_HenkanNyuryokuMode; +static Fixnum canna_fn_Forward; +static Fixnum canna_fn_Backward; +static Fixnum canna_fn_Next; +static Fixnum canna_fn_Prev; +static Fixnum canna_fn_BeginningOfLine; +static Fixnum canna_fn_EndOfLine; +static Fixnum canna_fn_DeleteNext; +static Fixnum canna_fn_DeletePrevious; +static Fixnum canna_fn_KillToEndOfLine; +static Fixnum canna_fn_Henkan; +static Fixnum canna_fn_Kakutei; +static Fixnum canna_fn_Extend; +static Fixnum canna_fn_Shrink; #ifdef CANNA_FN_AdjustBunsetsu -static int Vcanna_fn_AdjustBunsetsu = CANNA_FN_AdjustBunsetsu; +static Fixnum canna_fn_AdjustBunsetsu; #endif -static int Vcanna_fn_Quit = IROHA_FN_Quit; -static int Vcanna_fn_ConvertAsHex = IROHA_FN_ConvertAsHex; -static int Vcanna_fn_ConvertAsBushu = IROHA_FN_ConvertAsBushu; -static int Vcanna_fn_KouhoIchiran = IROHA_FN_KouhoIchiran; -static int Vcanna_fn_BubunMuhenkan = IROHA_FN_BubunMuhenkan; -static int Vcanna_fn_Zenkaku = IROHA_FN_Zenkaku; -static int Vcanna_fn_Hankaku = IROHA_FN_Hankaku; -static int Vcanna_fn_ToUpper = IROHA_FN_ToUpper; -static int Vcanna_fn_Capitalize = IROHA_FN_Capitalize; -static int Vcanna_fn_ToLower = IROHA_FN_ToLower; -static int Vcanna_fn_Hiragana = IROHA_FN_Hiragana; -static int Vcanna_fn_Katakana = IROHA_FN_Katakana; -static int Vcanna_fn_Romaji = IROHA_FN_Romaji; +static Fixnum canna_fn_Quit; +static Fixnum canna_fn_ConvertAsHex; +static Fixnum canna_fn_ConvertAsBushu; +static Fixnum canna_fn_KouhoIchiran; +static Fixnum canna_fn_BubunMuhenkan; +static Fixnum canna_fn_Zenkaku; +static Fixnum canna_fn_Hankaku; +static Fixnum canna_fn_ToUpper; +static Fixnum canna_fn_Capitalize; +static Fixnum canna_fn_ToLower; +static Fixnum canna_fn_Hiragana; +static Fixnum canna_fn_Katakana; +static Fixnum canna_fn_Romaji; #ifdef CANNA_FN_BaseHiragana -static int Vcanna_fn_BaseHiragana = CANNA_FN_BaseHiragana; -static int Vcanna_fn_BaseKatakana = CANNA_FN_BaseKatakana; -static int Vcanna_fn_BaseEisu = CANNA_FN_BaseEisu; -static int Vcanna_fn_BaseZenkaku = CANNA_FN_BaseZenkaku; -static int Vcanna_fn_BaseHankaku = CANNA_FN_BaseHankaku; -static int Vcanna_fn_BaseKana = CANNA_FN_BaseKana; -static int Vcanna_fn_BaseKakutei = CANNA_FN_BaseKakutei; -static int Vcanna_fn_BaseHenkan = CANNA_FN_BaseHenkan; -static int Vcanna_fn_BaseHiraKataToggle = CANNA_FN_BaseHiraKataToggle; -static int Vcanna_fn_BaseZenHanToggle = CANNA_FN_BaseZenHanToggle; -static int Vcanna_fn_BaseKanaEisuToggle = CANNA_FN_BaseKanaEisuToggle; -static int Vcanna_fn_BaseKakuteiHenkanToggle = - CANNA_FN_BaseKakuteiHenkanToggle; -static int Vcanna_fn_BaseRotateForward = CANNA_FN_BaseRotateForward; -static int Vcanna_fn_BaseRotateBackward = CANNA_FN_BaseRotateBackward; +static Fixnum canna_fn_BaseHiragana; +static Fixnum canna_fn_BaseKatakana; +static Fixnum canna_fn_BaseEisu; +static Fixnum canna_fn_BaseZenkaku; +static Fixnum canna_fn_BaseHankaku; +static Fixnum canna_fn_BaseKana; +static Fixnum canna_fn_BaseKakutei; +static Fixnum canna_fn_BaseHenkan; +static Fixnum canna_fn_BaseHiraKataToggle; +static Fixnum canna_fn_BaseZenHanToggle; +static Fixnum canna_fn_BaseKanaEisuToggle; +static Fixnum canna_fn_BaseKakuteiHenkanToggle; +static Fixnum canna_fn_BaseRotateForward; +static Fixnum canna_fn_BaseRotateBackward; #endif -static int Vcanna_fn_ExtendMode = IROHA_FN_ExtendMode; -static int Vcanna_fn_Touroku = IROHA_FN_Touroku; -static int Vcanna_fn_HexMode = IROHA_FN_HexMode; -static int Vcanna_fn_BushuMode = IROHA_FN_BushuMode; -static int Vcanna_fn_KigouMode = IROHA_FN_KigouMode; +static Fixnum canna_fn_ExtendMode; +static Fixnum canna_fn_Touroku; +static Fixnum canna_fn_HexMode; +static Fixnum canna_fn_BushuMode; +static Fixnum canna_fn_KigouMode; #ifdef CANNA_FN_Mark -static int Vcanna_fn_Mark = CANNA_FN_Mark; +static Fixnum canna_fn_Mark; #endif #ifdef CANNA_FN_TemporalMode -static int Vcanna_fn_TemporalMode = CANNA_FN_TemporalMode; +static Fixnum canna_fn_TemporalMode; #endif -static int Vcanna_key_Nfer = IROHA_KEY_Nfer; -static int Vcanna_key_Xfer = IROHA_KEY_Xfer; -static int Vcanna_key_Up = IROHA_KEY_Up; -static int Vcanna_key_Left = IROHA_KEY_Left; -static int Vcanna_key_Right = IROHA_KEY_Right; -static int Vcanna_key_Down = IROHA_KEY_Down; -static int Vcanna_key_Insert = IROHA_KEY_Insert; -static int Vcanna_key_Rollup = IROHA_KEY_Rollup; -static int Vcanna_key_Rolldown = IROHA_KEY_Rolldown; -static int Vcanna_key_Home = IROHA_KEY_Home; -static int Vcanna_key_Help = IROHA_KEY_Help; -static int Vcanna_key_KP_Key = IROHA_KEY_KP_Key; -static int Vcanna_key_Shift_Nfer = IROHA_KEY_Shift_Nfer; -static int Vcanna_key_Shift_Xfer = IROHA_KEY_Shift_Xfer; -static int Vcanna_key_Shift_Up = IROHA_KEY_Shift_Up; -static int Vcanna_key_Shift_Left = IROHA_KEY_Shift_Left; -static int Vcanna_key_Shift_Right = IROHA_KEY_Shift_Right; -static int Vcanna_key_Shift_Down = IROHA_KEY_Shift_Down; -static int Vcanna_key_Cntrl_Nfer = IROHA_KEY_Cntrl_Nfer; -static int Vcanna_key_Cntrl_Xfer = IROHA_KEY_Cntrl_Xfer; -static int Vcanna_key_Cntrl_Up = IROHA_KEY_Cntrl_Up; -static int Vcanna_key_Cntrl_Left = IROHA_KEY_Cntrl_Left; -static int Vcanna_key_Cntrl_Right = IROHA_KEY_Cntrl_Right; -static int Vcanna_key_Cntrl_Down = IROHA_KEY_Cntrl_Down; +static Fixnum canna_key_Nfer; +static Fixnum canna_key_Xfer; +static Fixnum canna_key_Up; +static Fixnum canna_key_Left; +static Fixnum canna_key_Right; +static Fixnum canna_key_Down; +static Fixnum canna_key_Insert; +static Fixnum canna_key_Rollup; +static Fixnum canna_key_Rolldown; +static Fixnum canna_key_Home; +static Fixnum canna_key_Help; +static Fixnum canna_key_KP_Key; +static Fixnum canna_key_Shift_Nfer; +static Fixnum canna_key_Shift_Xfer; +static Fixnum canna_key_Shift_Up; +static Fixnum canna_key_Shift_Left; +static Fixnum canna_key_Shift_Right; +static Fixnum canna_key_Shift_Down; +static Fixnum canna_key_Cntrl_Nfer; +static Fixnum canna_key_Cntrl_Xfer; +static Fixnum canna_key_Cntrl_Up; +static Fixnum canna_key_Cntrl_Left; +static Fixnum canna_key_Cntrl_Right; +static Fixnum canna_key_Cntrl_Down; Lisp_Object VCANNA; /* by MORIOKA Tomohiko 1996/6/7 */ @@ -1023,9 +1037,6 @@ Lisp_Object VCANNA; /* by MORIOKA Tomohiko void syms_of_mule_canna (void) { - DEFVAR_LISP ("CANNA", &VCANNA); /* hir@nec, 1992.5.21 */ - VCANNA = Qt; /* hir@nec, 1992.5.21 */ - DEFSUBR (Fcanna_key_proc); DEFSUBR (Fcanna_initialize); DEFSUBR (Fcanna_finalize); @@ -1049,467 +1060,727 @@ syms_of_mule_canna (void) void vars_of_mule_canna (void) { + DEFVAR_LISP ("CANNA", &VCANNA); /* hir@nec, 1992.5.21 */ + VCANNA = Qt; /* hir@nec, 1992.5.21 */ + DEFVAR_LISP ("canna-kakutei-string", &Vcanna_kakutei_string /* */ ); + Vcanna_kakutei_string = Qnil; + DEFVAR_LISP ("canna-kakutei-yomi", &Vcanna_kakutei_yomi /* */ ); + Vcanna_kakutei_yomi = Qnil; + DEFVAR_LISP ("canna-kakutei-romaji", &Vcanna_kakutei_romaji /* */ ); + Vcanna_kakutei_romaji = Qnil; + DEFVAR_LISP ("canna-henkan-string", &Vcanna_henkan_string /* */ ); - DEFVAR_INT ("canna-henkan-length", &Vcanna_henkan_length /* + Vcanna_henkan_string = Qnil; + + DEFVAR_INT ("canna-henkan-length", &canna_henkan_length /* */ ); - DEFVAR_INT ("canna-henkan-revpos", &Vcanna_henkan_revPos /* + canna_henkan_length = 0; + + DEFVAR_INT ("canna-henkan-revpos", &canna_henkan_revPos /* */ ); - DEFVAR_INT ("canna-henkan-revlen", &Vcanna_henkan_revLen /* + canna_henkan_revPos = 0; + + DEFVAR_INT ("canna-henkan-revlen", &canna_henkan_revLen /* */ ); + canna_henkan_revLen = 0; + DEFVAR_LISP ("canna-ichiran-string", &Vcanna_ichiran_string /* */ ); - DEFVAR_INT ("canna-ichiran-length", &Vcanna_ichiran_length /* + Vcanna_ichiran_string = Qnil; + + DEFVAR_INT ("canna-ichiran-length", &canna_ichiran_length /* */ ); - DEFVAR_INT ("canna-ichiran-revpos", &Vcanna_ichiran_revPos /* + canna_ichiran_length = 0; + + DEFVAR_INT ("canna-ichiran-revpos", &canna_ichiran_revPos /* */ ); - DEFVAR_INT ("canna-ichiran-revlen", &Vcanna_ichiran_revLen /* + canna_ichiran_revPos = 0; + + DEFVAR_INT ("canna-ichiran-revlen", &canna_ichiran_revLen /* */ ); + canna_ichiran_revLen = 0; + DEFVAR_LISP ("canna-mode-string", &Vcanna_mode_string /* */ ); + Vcanna_mode_string = Qnil; - DEFVAR_BOOL ("canna-empty-info", &Vcanna_empty_info /* + DEFVAR_BOOL ("canna-empty-info", &canna_empty_info /* For canna */ ); - DEFVAR_BOOL ("canna-through-info", &Vcanna_through_info /* + canna_empty_info = 0; + + DEFVAR_BOOL ("canna-through-info", &canna_through_info /* For canna */ ); - DEFVAR_BOOL ("canna-underline", &Vcanna_underline /* + canna_through_info = 0; + + DEFVAR_BOOL ("canna-underline", &canna_underline /* For canna */ ); - DEFVAR_BOOL ("canna-inhibit-hankakukana", &Vcanna_inhibit_hankakukana /* + canna_underline = 0; + + DEFVAR_BOOL ("canna-inhibit-hankakukana", &canna_inhibit_hankakukana /* For canna */ ); + canna_inhibit_hankakukana = 0; - DEFVAR_INT ("canna-mode-alpha-mode", &Vcanna_mode_AlphaMode /* + DEFVAR_INT ("canna-mode-alpha-mode", &canna_mode_AlphaMode /* */ ); - DEFVAR_INT ("canna-mode-empty-mode", &Vcanna_mode_EmptyMode /* + canna_mode_AlphaMode = IROHA_MODE_AlphaMode; + + DEFVAR_INT ("canna-mode-empty-mode", &canna_mode_EmptyMode /* */ ); - DEFVAR_INT ("canna-mode-kigo-mode", &Vcanna_mode_KigoMode /* + canna_mode_EmptyMode = IROHA_MODE_EmptyMode; + + DEFVAR_INT ("canna-mode-kigo-mode", &canna_mode_KigoMode /* */ ); - DEFVAR_INT ("canna-mode-yomi-mode", &Vcanna_mode_YomiMode /* + canna_mode_KigoMode = IROHA_MODE_KigoMode; + + DEFVAR_INT ("canna-mode-yomi-mode", &canna_mode_YomiMode /* */ ); - DEFVAR_INT ("canna-mode-jishu-mode", &Vcanna_mode_JishuMode /* + canna_mode_YomiMode = IROHA_MODE_YomiMode; + + DEFVAR_INT ("canna-mode-jishu-mode", &canna_mode_JishuMode /* */ ); - DEFVAR_INT ("canna-mode-tankouho-mode", &Vcanna_mode_TankouhoMode /* + canna_mode_JishuMode = IROHA_MODE_JishuMode; + + DEFVAR_INT ("canna-mode-tankouho-mode", &canna_mode_TankouhoMode /* */ ); - DEFVAR_INT ("canna-mode-ichiran-mode", &Vcanna_mode_IchiranMode /* + canna_mode_TankouhoMode = IROHA_MODE_TankouhoMode; + + DEFVAR_INT ("canna-mode-ichiran-mode", &canna_mode_IchiranMode /* */ ); - DEFVAR_INT ("canna-mode-yes-no-mode", &Vcanna_mode_YesNoMode /* + canna_mode_IchiranMode = IROHA_MODE_IchiranMode; + + DEFVAR_INT ("canna-mode-yes-no-mode", &canna_mode_YesNoMode /* */ ); - DEFVAR_INT ("canna-mode-on-off-mode", &Vcanna_mode_OnOffMode /* + canna_mode_YesNoMode = IROHA_MODE_YesNoMode; + + DEFVAR_INT ("canna-mode-on-off-mode", &canna_mode_OnOffMode /* */ ); + canna_mode_OnOffMode = IROHA_MODE_OnOffMode; + #ifdef CANNA_MODE_AdjustBunsetsuMode DEFVAR_INT ("canna-mode-adjust-bunsetsu-mode", - &Vcanna_mode_AdjustBunsetsuMode /* + &canna_mode_AdjustBunsetsuMode /* */ ); + canna_mode_AdjustBunsetsuMode = CANNA_MODE_AdjustBunsetsuMode; #endif #ifdef CANNA_MODE_ChikujiYomiMode - DEFVAR_INT ("canna-mode-chikuji-yomi-mode", &Vcanna_mode_ChikujiYomiMode /* + DEFVAR_INT ("canna-mode-chikuji-yomi-mode", &canna_mode_ChikujiYomiMode /* */ ); + canna_mode_ChikujiYomiMode = CANNA_MODE_ChikujiYomiMode; + DEFVAR_INT ("canna-mode-chikuji-bunsetsu-mode", - &Vcanna_mode_ChikujiTanMode /* + &canna_mode_ChikujiTanMode /* */ ); + canna_mode_ChikujiTanMode = CANNA_MODE_ChikujiTanMode; #endif - DEFVAR_INT ("canna-mode-henkan-mode", &Vcanna_mode_HenkanMode /* + DEFVAR_INT ("canna-mode-henkan-mode", &canna_mode_HenkanMode /* */ ); + canna_mode_HenkanMode = IROHA_MODE_HenkanMode; + #ifdef CANNA_MODE_HenkanNyuryokuMode DEFVAR_INT ("canna-mode-henkan-nyuuryoku-mode", - &Vcanna_mode_HenkanNyuryokuMode /* + &canna_mode_HenkanNyuryokuMode /* */ ); + canna_mode_HenkanNyuryokuMode = CANNA_MODE_HenkanNyuryokuMode; #endif #ifdef CANNA_MODE_ZenHiraHenkanMode DEFVAR_INT ("canna-mode-zen-hira-henkan-mode", - &Vcanna_mode_ZenHiraHenkanMode /* + &canna_mode_ZenHiraHenkanMode /* */ ); + canna_mode_ZenHiraHenkanMode = CANNA_MODE_ZenHiraHenkanMode; #ifdef CANNA_MODE_HanHiraHenkanMode DEFVAR_INT ("canna-mode-han-hira-henkan-mode", - &Vcanna_mode_HanHiraHenkanMode /* + &canna_mode_HanHiraHenkanMode /* */ ); + canna_mode_HanHiraHenkanMode = CANNA_MODE_HanHiraHenkanMode; #endif DEFVAR_INT ("canna-mode-zen-kata-henkan-mode", - &Vcanna_mode_ZenKataHenkanMode /* + &canna_mode_ZenKataHenkanMode /* */ ); + canna_mode_ZenKataHenkanMode = CANNA_MODE_ZenKataHenkanMode; + DEFVAR_INT ("canna-mode-han-kata-henkan-mode", - &Vcanna_mode_HanKataHenkanMode /* + &canna_mode_HanKataHenkanMode /* */ ); + canna_mode_HanKataHenkanMode = CANNA_MODE_HanKataHenkanMode; + DEFVAR_INT ("canna-mode-zen-alpha-henkan-mode", - &Vcanna_mode_ZenAlphaHenkanMode /* + &canna_mode_ZenAlphaHenkanMode /* */ ); + canna_mode_ZenAlphaHenkanMode = CANNA_MODE_ZenAlphaHenkanMode; + DEFVAR_INT ("canna-mode-han-alpha-henkan-mode", - &Vcanna_mode_HanAlphaHenkanMode /* + &canna_mode_HanAlphaHenkanMode /* */ ); + canna_mode_HanAlphaHenkanMode = CANNA_MODE_HanAlphaHenkanMode; #endif DEFVAR_INT ("canna-mode-zen-hira-kakutei-mode", - &Vcanna_mode_ZenHiraKakuteiMode /* + &canna_mode_ZenHiraKakuteiMode /* */ ); + canna_mode_ZenHiraKakuteiMode = IROHA_MODE_ZenHiraKakuteiMode; #ifdef CANNA_MODE_HanHiraKakuteiMode DEFVAR_INT ("canna-mode-han-hira-kakutei-mode", - &Vcanna_mode_HanHiraKakuteiMode /* + &canna_mode_HanHiraKakuteiMode /* */ ); + canna_mode_HanHiraKakuteiMode = CANNA_MODE_HanHiraKakuteiMode; #endif DEFVAR_INT ("canna-mode-zen-kata-kakutei-mode", - &Vcanna_mode_ZenKataKakuteiMode /* + &canna_mode_ZenKataKakuteiMode /* */ ); + canna_mode_ZenKataKakuteiMode = IROHA_MODE_ZenKataKakuteiMode; + DEFVAR_INT ("canna-mode-han-kata-kakutei-mode", - &Vcanna_mode_HanKataKakuteiMode /* + &canna_mode_HanKataKakuteiMode /* */ ); + canna_mode_HanKataKakuteiMode = IROHA_MODE_HanKataKakuteiMode; + DEFVAR_INT ("canna-mode-zen-alpha-kakutei-mode", - &Vcanna_mode_ZenAlphaKakuteiMode /* + &canna_mode_ZenAlphaKakuteiMode /* */ ); + canna_mode_ZenAlphaKakuteiMode = IROHA_MODE_ZenAlphaKakuteiMode; + DEFVAR_INT ("canna-mode-han-alpha-kakutei-mode", - &Vcanna_mode_HanAlphaKakuteiMode /* + &canna_mode_HanAlphaKakuteiMode /* */ ); - DEFVAR_INT ("canna-mode-hex-mode", &Vcanna_mode_HexMode /* + canna_mode_HanAlphaKakuteiMode = IROHA_MODE_HanAlphaKakuteiMode; + + DEFVAR_INT ("canna-mode-hex-mode", &canna_mode_HexMode /* */ ); - DEFVAR_INT ("canna-mode-bushu-mode", &Vcanna_mode_BushuMode /* + canna_mode_HexMode = IROHA_MODE_HexMode; + + DEFVAR_INT ("canna-mode-bushu-mode", &canna_mode_BushuMode /* */ ); - DEFVAR_INT ("canna-mode-extend-mode", &Vcanna_mode_ExtendMode /* + canna_mode_BushuMode = IROHA_MODE_BushuMode; + + DEFVAR_INT ("canna-mode-extend-mode", &canna_mode_ExtendMode /* */ ); - DEFVAR_INT ("canna-mode-russian-mode", &Vcanna_mode_RussianMode /* + canna_mode_ExtendMode = IROHA_MODE_ExtendMode; + + DEFVAR_INT ("canna-mode-russian-mode", &canna_mode_RussianMode /* */ ); - DEFVAR_INT ("canna-mode-greek-mode", &Vcanna_mode_GreekMode /* + canna_mode_RussianMode = IROHA_MODE_RussianMode; + + DEFVAR_INT ("canna-mode-greek-mode", &canna_mode_GreekMode /* */ ); - DEFVAR_INT ("canna-mode-line-mode", &Vcanna_mode_LineMode /* + canna_mode_GreekMode = IROHA_MODE_GreekMode; + + DEFVAR_INT ("canna-mode-line-mode", &canna_mode_LineMode /* */ ); + canna_mode_LineMode = IROHA_MODE_LineMode; + DEFVAR_INT ("canna-mode-changing-server-mode", - &Vcanna_mode_ChangingServerMode /* + &canna_mode_ChangingServerMode /* */ ); + canna_mode_ChangingServerMode = IROHA_MODE_ChangingServerMode; + DEFVAR_INT ("canna-mode-henkan-method-mode", - &Vcanna_mode_HenkanMethodMode /* + &canna_mode_HenkanMethodMode /* */ ); - DEFVAR_INT ("canna-mode-delete-dic-mode", &Vcanna_mode_DeleteDicMode /* + canna_mode_HenkanMethodMode = IROHA_MODE_HenkanMethodMode; + + DEFVAR_INT ("canna-mode-delete-dic-mode", &canna_mode_DeleteDicMode /* */ ); - DEFVAR_INT ("canna-mode-touroku-mode", &Vcanna_mode_TourokuMode /* + canna_mode_DeleteDicMode = IROHA_MODE_DeleteDicMode; + + DEFVAR_INT ("canna-mode-touroku-mode", &canna_mode_TourokuMode /* */ ); + canna_mode_TourokuMode = IROHA_MODE_TourokuMode; + DEFVAR_INT ("canna-mode-touroku-empty-mode", - &Vcanna_mode_TourokuEmptyMode /* + &canna_mode_TourokuEmptyMode /* */ ); + canna_mode_TourokuEmptyMode = IROHA_MODE_TourokuEmptyMode; + DEFVAR_INT ("canna-mode-touroku-hinshi-mode", - &Vcanna_mode_TourokuHinshiMode /* + &canna_mode_TourokuHinshiMode /* */ ); - DEFVAR_INT ("canna-mode-touroku-dic-mode", &Vcanna_mode_TourokuDicMode /* + canna_mode_TourokuHinshiMode = IROHA_MODE_TourokuHinshiMode; + + DEFVAR_INT ("canna-mode-touroku-dic-mode", &canna_mode_TourokuDicMode /* */ ); + canna_mode_TourokuDicMode = IROHA_MODE_TourokuDicMode; + DEFVAR_INT ("canna-mode-quoted-insert-mode", - &Vcanna_mode_QuotedInsertMode /* + &canna_mode_QuotedInsertMode /* */ ); + canna_mode_QuotedInsertMode = IROHA_MODE_QuotedInsertMode; + DEFVAR_INT ("canna-mode-bubun-muhenkan-mode", - &Vcanna_mode_BubunMuhenkanMode /* + &canna_mode_BubunMuhenkanMode /* */ ); - DEFVAR_INT ("canna-mode-mount-dic-mode", &Vcanna_mode_MountDicMode /* + canna_mode_BubunMuhenkanMode = IROHA_MODE_BubunMuhenkanMode; + + DEFVAR_INT ("canna-mode-mount-dic-mode", &canna_mode_MountDicMode /* */ ); + canna_mode_MountDicMode = IROHA_MODE_MountDicMode; - DEFVAR_INT ("canna-func-self-insert", &Vcanna_fn_SelfInsert /* + DEFVAR_INT ("canna-func-self-insert", &canna_fn_SelfInsert /* */ ); - DEFVAR_INT ("canna-func-functional-insert", &Vcanna_fn_FunctionalInsert /* + canna_fn_SelfInsert = IROHA_FN_SelfInsert; + + DEFVAR_INT ("canna-func-functional-insert", &canna_fn_FunctionalInsert /* */ ); - DEFVAR_INT ("canna-func-quoted-insert", &Vcanna_fn_QuotedInsert /* + canna_fn_FunctionalInsert = IROHA_FN_FunctionalInsert; + + DEFVAR_INT ("canna-func-quoted-insert", &canna_fn_QuotedInsert /* */ ); - DEFVAR_INT ("canna-func-japanese-mode", &Vcanna_fn_JapaneseMode /* + canna_fn_QuotedInsert = IROHA_FN_QuotedInsert; + + DEFVAR_INT ("canna-func-japanese-mode", &canna_fn_JapaneseMode /* */ ); - DEFVAR_INT ("canna-func-alpha-mode", &Vcanna_fn_AlphaMode /* + canna_fn_JapaneseMode = IROHA_FN_JapaneseMode; + + DEFVAR_INT ("canna-func-alpha-mode", &canna_fn_AlphaMode /* */ ); + canna_fn_AlphaMode = IROHA_FN_AlphaMode; + DEFVAR_INT ("canna-func-henkan-nyuryoku-mode", - &Vcanna_fn_HenkanNyuryokuMode /* + &canna_fn_HenkanNyuryokuMode /* */ ); - DEFVAR_INT ("canna-func-forward", &Vcanna_fn_Forward /* + canna_fn_HenkanNyuryokuMode = IROHA_FN_HenkanNyuryokuMode; + + DEFVAR_INT ("canna-func-forward", &canna_fn_Forward /* */ ); - DEFVAR_INT ("canna-func-backward", &Vcanna_fn_Backward /* + canna_fn_Forward = IROHA_FN_Forward; + + DEFVAR_INT ("canna-func-backward", &canna_fn_Backward /* */ ); - DEFVAR_INT ("canna-func-next", &Vcanna_fn_Next /* + canna_fn_Backward = IROHA_FN_Backward; + + DEFVAR_INT ("canna-func-next", &canna_fn_Next /* */ ); - DEFVAR_INT ("canna-func-previous", &Vcanna_fn_Prev /* + canna_fn_Next = IROHA_FN_Next; + + DEFVAR_INT ("canna-func-previous", &canna_fn_Prev /* */ ); - DEFVAR_INT ("canna-func-beginning-of-line", &Vcanna_fn_BeginningOfLine /* + canna_fn_Prev = IROHA_FN_Prev; + + DEFVAR_INT ("canna-func-beginning-of-line", &canna_fn_BeginningOfLine /* */ ); - DEFVAR_INT ("canna-func-end-of-line", &Vcanna_fn_EndOfLine /* + canna_fn_BeginningOfLine = IROHA_FN_BeginningOfLine; + + DEFVAR_INT ("canna-func-end-of-line", &canna_fn_EndOfLine /* */ ); - DEFVAR_INT ("canna-func-delete-next", &Vcanna_fn_DeleteNext /* + canna_fn_EndOfLine = IROHA_FN_EndOfLine; + + DEFVAR_INT ("canna-func-delete-next", &canna_fn_DeleteNext /* */ ); - DEFVAR_INT ("canna-func-delete_previous", &Vcanna_fn_DeletePrevious /* + canna_fn_DeleteNext = IROHA_FN_DeleteNext; + + DEFVAR_INT ("canna-func-delete-previous", &canna_fn_DeletePrevious /* */ ); - DEFVAR_INT ("canna-func-kill-to-end-of-line", &Vcanna_fn_KillToEndOfLine /* + canna_fn_DeletePrevious = IROHA_FN_DeletePrevious; + + DEFVAR_INT ("canna-func-kill-to-end-of-line", &canna_fn_KillToEndOfLine /* */ ); - DEFVAR_INT ("canna-func-henkan", &Vcanna_fn_Henkan /* + canna_fn_KillToEndOfLine = IROHA_FN_KillToEndOfLine; + + DEFVAR_INT ("canna-func-henkan", &canna_fn_Henkan /* */ ); - DEFVAR_INT ("canna-func-kakutei", &Vcanna_fn_Kakutei /* + canna_fn_Henkan = IROHA_FN_Henkan; + + DEFVAR_INT ("canna-func-kakutei", &canna_fn_Kakutei /* */ ); - DEFVAR_INT ("canna-func-extend", &Vcanna_fn_Extend /* + canna_fn_Kakutei = IROHA_FN_Kakutei; + + DEFVAR_INT ("canna-func-extend", &canna_fn_Extend /* */ ); - DEFVAR_INT ("canna-func-shrink", &Vcanna_fn_Shrink /* + canna_fn_Extend = IROHA_FN_Extend; + + DEFVAR_INT ("canna-func-shrink", &canna_fn_Shrink /* */ ); + canna_fn_Shrink = IROHA_FN_Shrink; + #ifdef CANNA_FN_AdjustBunsetsu - DEFVAR_INT ("canna-func-adjust-bunsetsu", &Vcanna_fn_AdjustBunsetsu /* + DEFVAR_INT ("canna-func-adjust-bunsetsu", &canna_fn_AdjustBunsetsu /* */ ); + canna_fn_AdjustBunsetsu = CANNA_FN_AdjustBunsetsu; #endif - DEFVAR_INT ("canna-func-quit", &Vcanna_fn_Quit /* + DEFVAR_INT ("canna-func-quit", &canna_fn_Quit /* */ ); - DEFVAR_INT ("canna-func-convert-as-hex", &Vcanna_fn_ConvertAsHex /* + canna_fn_Quit = IROHA_FN_Quit; + + DEFVAR_INT ("canna-func-convert-as-hex", &canna_fn_ConvertAsHex /* */ ); - DEFVAR_INT ("canna-func-convert-as-bushu", &Vcanna_fn_ConvertAsBushu /* + canna_fn_ConvertAsHex = IROHA_FN_ConvertAsHex; + + DEFVAR_INT ("canna-func-convert-as-bushu", &canna_fn_ConvertAsBushu /* */ ); - DEFVAR_INT ("canna-func-kouho-ichiran", &Vcanna_fn_KouhoIchiran /* + canna_fn_ConvertAsBushu = IROHA_FN_ConvertAsBushu; + + DEFVAR_INT ("canna-func-kouho-ichiran", &canna_fn_KouhoIchiran /* */ ); - DEFVAR_INT ("canna-func-bubun-muhenkan", &Vcanna_fn_BubunMuhenkan /* + canna_fn_KouhoIchiran = IROHA_FN_KouhoIchiran; + + DEFVAR_INT ("canna-func-bubun-muhenkan", &canna_fn_BubunMuhenkan /* */ ); - DEFVAR_INT ("canna-func-zenkaku", &Vcanna_fn_Zenkaku /* + canna_fn_BubunMuhenkan = IROHA_FN_BubunMuhenkan; + + DEFVAR_INT ("canna-func-zenkaku", &canna_fn_Zenkaku /* */ ); - DEFVAR_INT ("canna-func-hankaku", &Vcanna_fn_Hankaku /* + canna_fn_Zenkaku = IROHA_FN_Zenkaku; + + DEFVAR_INT ("canna-func-hankaku", &canna_fn_Hankaku /* */ ); - DEFVAR_INT ("canna-func-to-upper", &Vcanna_fn_ToUpper /* + canna_fn_Hankaku = IROHA_FN_Hankaku; + + DEFVAR_INT ("canna-func-to-upper", &canna_fn_ToUpper /* */ ); - DEFVAR_INT ("canna-func-capitalize", &Vcanna_fn_Capitalize /* + canna_fn_ToUpper = IROHA_FN_ToUpper; + + DEFVAR_INT ("canna-func-capitalize", &canna_fn_Capitalize /* */ ); - DEFVAR_INT ("canna-func-to-lower", &Vcanna_fn_ToLower /* + canna_fn_Capitalize = IROHA_FN_Capitalize; + + DEFVAR_INT ("canna-func-to-lower", &canna_fn_ToLower /* */ ); - DEFVAR_INT ("canna-func-hiragana", &Vcanna_fn_Hiragana /* + canna_fn_ToLower = IROHA_FN_ToLower; + + DEFVAR_INT ("canna-func-hiragana", &canna_fn_Hiragana /* */ ); - DEFVAR_INT ("canna-func-katakana", &Vcanna_fn_Katakana /* + canna_fn_Hiragana = IROHA_FN_Hiragana; + + DEFVAR_INT ("canna-func-katakana", &canna_fn_Katakana /* */ ); - DEFVAR_INT ("canna-func-romaji", &Vcanna_fn_Romaji /* + canna_fn_Katakana = IROHA_FN_Katakana; + + DEFVAR_INT ("canna-func-romaji", &canna_fn_Romaji /* */ ); + canna_fn_Romaji = IROHA_FN_Romaji; + #ifdef CANNA_FN_BaseHiragana - DEFVAR_INT ("canna-func-base-hiragana", &Vcanna_fn_BaseHiragana /* + DEFVAR_INT ("canna-func-base-hiragana", &canna_fn_BaseHiragana /* */ ); - DEFVAR_INT ("canna-func-base-katakana", &Vcanna_fn_BaseKatakana /* + canna_fn_BaseHiragana = CANNA_FN_BaseHiragana; + + DEFVAR_INT ("canna-func-base-katakana", &canna_fn_BaseKatakana /* */ ); - DEFVAR_INT ("canna-func-base-eisu", &Vcanna_fn_BaseEisu /* + canna_fn_BaseKatakana = CANNA_FN_BaseKatakana; + + DEFVAR_INT ("canna-func-base-eisu", &canna_fn_BaseEisu /* */ ); - DEFVAR_INT ("canna-func-base-zenkaku", &Vcanna_fn_BaseZenkaku /* + canna_fn_BaseEisu = CANNA_FN_BaseEisu; + + DEFVAR_INT ("canna-func-base-zenkaku", &canna_fn_BaseZenkaku /* */ ); - DEFVAR_INT ("canna-func-base-hankaku", &Vcanna_fn_BaseHankaku /* + canna_fn_BaseZenkaku = CANNA_FN_BaseZenkaku; + + DEFVAR_INT ("canna-func-base-hankaku", &canna_fn_BaseHankaku /* */ ); - DEFVAR_INT ("canna-func-base-kana", &Vcanna_fn_BaseKana /* + canna_fn_BaseHankaku = CANNA_FN_BaseHankaku; + + DEFVAR_INT ("canna-func-base-kana", &canna_fn_BaseKana /* */ ); - DEFVAR_INT ("canna-func-base-kakutei", &Vcanna_fn_BaseKakutei /* + canna_fn_BaseKana = CANNA_FN_BaseKana; + + DEFVAR_INT ("canna-func-base-kakutei", &canna_fn_BaseKakutei /* */ ); - DEFVAR_INT ("canna-func-base-henkan", &Vcanna_fn_BaseHenkan /* + canna_fn_BaseKakutei = CANNA_FN_BaseKakutei; + + DEFVAR_INT ("canna-func-base-henkan", &canna_fn_BaseHenkan /* */ ); + canna_fn_BaseHenkan = CANNA_FN_BaseHenkan; + DEFVAR_INT ("canna-func-base-hiragana-katakana-toggle", - &Vcanna_fn_BaseHiraKataToggle /* + &canna_fn_BaseHiraKataToggle /* */ ); + canna_fn_BaseHiraKataToggle = CANNA_FN_BaseHiraKataToggle; + DEFVAR_INT ("canna-func-base-zenkaku-hankaku-toggle", - &Vcanna_fn_BaseZenHanToggle /* + &canna_fn_BaseZenHanToggle /* */ ); + canna_fn_BaseZenHanToggle = CANNA_FN_BaseZenHanToggle; + DEFVAR_INT ("canna-func-base-kana-eisu-toggle", - &Vcanna_fn_BaseKanaEisuToggle /* + &canna_fn_BaseKanaEisuToggle /* */ ); + canna_fn_BaseKanaEisuToggle = CANNA_FN_BaseKanaEisuToggle; + DEFVAR_INT ("canna-func-base-kakutei-henkan-toggle", - &Vcanna_fn_BaseKakuteiHenkanToggle /* + &canna_fn_BaseKakuteiHenkanToggle /* */ ); + canna_fn_BaseKakuteiHenkanToggle = CANNA_FN_BaseKakuteiHenkanToggle; + DEFVAR_INT ("canna-func-base-rotate-forward", - &Vcanna_fn_BaseRotateForward /* + &canna_fn_BaseRotateForward /* */ ); + canna_fn_BaseRotateForward = CANNA_FN_BaseRotateForward; + DEFVAR_INT ("canna-func-base-rotate-backward", - &Vcanna_fn_BaseRotateBackward /* + &canna_fn_BaseRotateBackward /* */ ); + canna_fn_BaseRotateBackward = CANNA_FN_BaseRotateBackward; + #endif - DEFVAR_INT ("canna-func-extend-mode", &Vcanna_fn_ExtendMode /* + DEFVAR_INT ("canna-func-extend-mode", &canna_fn_ExtendMode /* */ ); - DEFVAR_INT ("canna-func-touroku", &Vcanna_fn_Touroku /* + canna_fn_ExtendMode = IROHA_FN_ExtendMode; + + DEFVAR_INT ("canna-func-touroku", &canna_fn_Touroku /* */ ); - DEFVAR_INT ("canna-func-hex-mode", &Vcanna_fn_HexMode /* + canna_fn_Touroku = IROHA_FN_Touroku; + + DEFVAR_INT ("canna-func-hex-mode", &canna_fn_HexMode /* */ ); - DEFVAR_INT ("canna-func-bushu-mode", &Vcanna_fn_BushuMode /* + canna_fn_HexMode = IROHA_FN_HexMode; + + DEFVAR_INT ("canna-func-bushu-mode", &canna_fn_BushuMode /* */ ); - DEFVAR_INT ("canna-func-kigo-mode", &Vcanna_fn_KigouMode /* + canna_fn_BushuMode = IROHA_FN_BushuMode; + + DEFVAR_INT ("canna-func-kigo-mode", &canna_fn_KigouMode /* */ ); + canna_fn_KigouMode = IROHA_FN_KigouMode; + #ifdef CANNA_FN_Mark - DEFVAR_INT ("canna-func-mark", &Vcanna_fn_Mark /* + DEFVAR_INT ("canna-func-mark", &canna_fn_Mark /* */ ); + canna_fn_Mark = CANNA_FN_Mark; #endif #ifdef CANNA_FN_TemporalMode - DEFVAR_INT ("canna-func-temporal-mode", &Vcanna_fn_TemporalMode /* + DEFVAR_INT ("canna-func-temporal-mode", &canna_fn_TemporalMode /* */ ); + canna_fn_TemporalMode = CANNA_FN_TemporalMode; #endif - DEFVAR_INT ("canna-key-nfer", &Vcanna_key_Nfer /* + DEFVAR_INT ("canna-key-nfer", &canna_key_Nfer /* */ ); - DEFVAR_INT ("canna-key-xfer", &Vcanna_key_Xfer /* + canna_key_Nfer = IROHA_KEY_Nfer; + + DEFVAR_INT ("canna-key-xfer", &canna_key_Xfer /* */ ); - DEFVAR_INT ("canna-key-up", &Vcanna_key_Up /* + canna_key_Xfer = IROHA_KEY_Xfer; + + DEFVAR_INT ("canna-key-up", &canna_key_Up /* */ ); - DEFVAR_INT ("canna-key-left", &Vcanna_key_Left /* + canna_key_Up = IROHA_KEY_Up; + + DEFVAR_INT ("canna-key-left", &canna_key_Left /* */ ); - DEFVAR_INT ("canna-key-right", &Vcanna_key_Right /* + canna_key_Left = IROHA_KEY_Left; + + DEFVAR_INT ("canna-key-right", &canna_key_Right /* */ ); - DEFVAR_INT ("canna-key-down", &Vcanna_key_Down /* + canna_key_Right = IROHA_KEY_Right; + + DEFVAR_INT ("canna-key-down", &canna_key_Down /* */ ); - DEFVAR_INT ("canna-key-insert", &Vcanna_key_Insert /* + canna_key_Down = IROHA_KEY_Down; + + DEFVAR_INT ("canna-key-insert", &canna_key_Insert /* */ ); - DEFVAR_INT ("canna-key-rollup", &Vcanna_key_Rollup /* + canna_key_Insert = IROHA_KEY_Insert; + + DEFVAR_INT ("canna-key-rollup", &canna_key_Rollup /* */ ); - DEFVAR_INT ("canna-key-rolldown", &Vcanna_key_Rolldown /* + canna_key_Rollup = IROHA_KEY_Rollup; + + DEFVAR_INT ("canna-key-rolldown", &canna_key_Rolldown /* */ ); - DEFVAR_INT ("canna-key-home", &Vcanna_key_Home /* + canna_key_Rolldown = IROHA_KEY_Rolldown; + + DEFVAR_INT ("canna-key-home", &canna_key_Home /* */ ); - DEFVAR_INT ("canna-key-help", &Vcanna_key_Help /* + canna_key_Home = IROHA_KEY_Home; + + DEFVAR_INT ("canna-key-help", &canna_key_Help /* */ ); - DEFVAR_INT ("canna-key-kp-key", &Vcanna_key_KP_Key /* + canna_key_Help = IROHA_KEY_Help; + + DEFVAR_INT ("canna-key-kp-key", &canna_key_KP_Key /* */ ); - DEFVAR_INT ("canna-key-shift-nfer", &Vcanna_key_Shift_Nfer /* + canna_key_KP_Key = IROHA_KEY_KP_Key; + + DEFVAR_INT ("canna-key-shift-nfer", &canna_key_Shift_Nfer /* */ ); - DEFVAR_INT ("canna-key-shift-xfer", &Vcanna_key_Shift_Xfer /* + canna_key_Shift_Nfer = IROHA_KEY_Shift_Nfer; + + DEFVAR_INT ("canna-key-shift-xfer", &canna_key_Shift_Xfer /* */ ); - DEFVAR_INT ("canna-key-shift-up", &Vcanna_key_Shift_Up /* + canna_key_Shift_Xfer = IROHA_KEY_Shift_Xfer; + + DEFVAR_INT ("canna-key-shift-up", &canna_key_Shift_Up /* */ ); - DEFVAR_INT ("canna-key-shift-left", &Vcanna_key_Shift_Left /* + canna_key_Shift_Up = IROHA_KEY_Shift_Up; + + DEFVAR_INT ("canna-key-shift-left", &canna_key_Shift_Left /* */ ); - DEFVAR_INT ("canna-key-shift-right", &Vcanna_key_Shift_Right /* + canna_key_Shift_Left = IROHA_KEY_Shift_Left; + + DEFVAR_INT ("canna-key-shift-right", &canna_key_Shift_Right /* */ ); - DEFVAR_INT ("canna-key-shift-down", &Vcanna_key_Shift_Down /* + canna_key_Shift_Right = IROHA_KEY_Shift_Right; + + DEFVAR_INT ("canna-key-shift-down", &canna_key_Shift_Down /* */ ); - DEFVAR_INT ("canna-key-control-nfer", &Vcanna_key_Cntrl_Nfer /* + canna_key_Shift_Down = IROHA_KEY_Shift_Down; + + DEFVAR_INT ("canna-key-control-nfer", &canna_key_Cntrl_Nfer /* */ ); - DEFVAR_INT ("canna-key-control-xfer", &Vcanna_key_Cntrl_Xfer /* + canna_key_Cntrl_Nfer = IROHA_KEY_Cntrl_Nfer; + + DEFVAR_INT ("canna-key-control-xfer", &canna_key_Cntrl_Xfer /* */ ); - DEFVAR_INT ("canna-key-control-up", &Vcanna_key_Cntrl_Up /* + canna_key_Cntrl_Xfer = IROHA_KEY_Cntrl_Xfer; + + DEFVAR_INT ("canna-key-control-up", &canna_key_Cntrl_Up /* */ ); - DEFVAR_INT ("canna-key-control-left", &Vcanna_key_Cntrl_Left /* + canna_key_Cntrl_Up = IROHA_KEY_Cntrl_Up; + + DEFVAR_INT ("canna-key-control-left", &canna_key_Cntrl_Left /* */ ); - DEFVAR_INT ("canna-key-control-right", &Vcanna_key_Cntrl_Right /* + canna_key_Cntrl_Left = IROHA_KEY_Cntrl_Left; + + DEFVAR_INT ("canna-key-control-right", &canna_key_Cntrl_Right /* */ ); - DEFVAR_INT ("canna-key-control-down", &Vcanna_key_Cntrl_Down /* + canna_key_Cntrl_Right = IROHA_KEY_Cntrl_Right; + + DEFVAR_INT ("canna-key-control-down", &canna_key_Cntrl_Down /* */ ); + canna_key_Cntrl_Down = IROHA_KEY_Cntrl_Down; Fprovide(intern("CANNA")); } @@ -1521,10 +1792,74 @@ For canna /* EUC multibyte string to MULE internal string */ static void -c2mu (char *cp, int l, char *mp) +c2mu (unsigned char *cp, int l, unsigned char *mp) { - char ch, *ep = cp+l; - + unsigned char ch, *ep = cp+l; +#ifdef UTF2000 + Emchar chr; + + while ((cp < ep) && (ch = *cp++)) + { + if (ch == ISO_CODE_SS2) + { + chr = (*cp++) + MIN_CHAR_HALFWIDTH_KATAKANA - 0x20; + } + else if (ch == ISO_CODE_SS3) + { + ch = *cp++; + chr = MAKE_CHAR (Vcharset_japanese_jisx0212, + ch & 0x7f, (*cp++) & 0x7f); + } + else if (ch & 0x80) + { + chr = MAKE_CHAR (Vcharset_japanese_jisx0208, + ch & 0x7f, (*cp++) & 0x7f); + } + else + { + chr = ch; + } + if ( chr <= 0x7f ) + { + *mp++ = chr; + } + else if ( chr <= 0x7ff ) + { + *mp++ = (chr >> 6) | 0xc0; + *mp++ = (chr & 0x3f) | 0x80; + } + else if ( chr <= 0xffff ) + { + *mp++ = (chr >> 12) | 0xe0; + *mp++ = ((chr >> 6) & 0x3f) | 0x80; + *mp++ = (chr & 0x3f) | 0x80; + } + else if ( chr <= 0x1fffff ) + { + *mp++ = (chr >> 18) | 0xf0; + *mp++ = ((chr >> 12) & 0x3f) | 0x80; + *mp++ = ((chr >> 6) & 0x3f) | 0x80; + *mp++ = (chr & 0x3f) | 0x80; + } + else if ( chr <= 0x3ffffff ) + { + *mp++ = (chr >> 24) | 0xf8; + *mp++ = ((chr >> 18) & 0x3f) | 0x80; + *mp++ = ((chr >> 12) & 0x3f) | 0x80; + *mp++ = ((chr >> 6) & 0x3f) | 0x80; + *mp++ = (chr & 0x3f) | 0x80; + } + else + { + *mp++ = (chr >> 30) | 0xfc; + *mp++ = ((chr >> 24) & 0x3f) | 0x80; + *mp++ = ((chr >> 18) & 0x3f) | 0x80; + *mp++ = ((chr >> 12) & 0x3f) | 0x80; + *mp++ = ((chr >> 6) & 0x3f) | 0x80; + *mp++ = (chr & 0x3f) | 0x80; + } + } +#else while ((cp < ep) && (ch = *cp)) { if ((unsigned char) ch == ISO_CODE_SS2) @@ -1545,6 +1880,7 @@ c2mu (char *cp, int l, char *mp) } *mp++ = *cp++; } +#endif *mp = 0; } @@ -1553,10 +1889,80 @@ c2mu (char *cp, int l, char *mp) static void m2c (unsigned char *mp, int l, unsigned char *cp) { - unsigned char ch, *ep = mp + l;; - + unsigned char ch, *ep = mp + l; +#ifdef UTF2000 + int len; + Emchar chr; +#endif + while ((mp < ep) && (ch = *mp++)) { +#ifdef UTF2000 + if ( ch >= 0xfc ) + { + chr = (ch & 0x01); + len = 5; + } + else if ( ch >= 0xf8 ) + { + chr = ch & 0x03; + len = 4; + } + else if ( ch >= 0xf0 ) + { + chr = ch & 0x07; + len = 3; + } + else if ( ch >= 0xe0 ) + { + chr = ch & 0x0f; + len = 2; + } + else if ( ch >= 0xc0 ) + { + chr = ch & 0x1f; + len = 1; + } + else + { + chr = ch; + len = 0; + } + for( ; len > 0; len-- ) + { + ch = *mp++; + chr = ( chr << 6 ) | ( ch & 0x3f ); + } + if ( chr <= 0x7f ) + *cp++ = chr; + else + { + int code; + + if ( (code + = charset_code_point (Vcharset_japanese_jisx0208, + chr, 0)) >= 0 ) + { + *cp++ = (code >> 8) | 0x80; + *cp++ = (code & 0xFF) | 0x80; + } + else if ( (code + = charset_code_point (Vcharset_katakana_jisx0201, + chr, 0)) >= 0 ) + { + *cp++ = ISO_CODE_SS2; + *cp++ = code | 0x80; + } + else if ( (code + = charset_code_point (Vcharset_japanese_jisx0212, + chr, 0)) >= 0 ) + { + *cp++ = ISO_CODE_SS3; + *cp++ = (code >> 8) | 0x80; + *cp++ = (code & 0xFF) | 0x80; + } + } +#else switch (ch) { case LEADING_BYTE_KATAKANA_JISX0201: @@ -1573,7 +1979,8 @@ m2c (unsigned char *mp, int l, unsigned char *cp) *cp++ = ch; break; } - } +#endif + } *cp = 0; } @@ -1584,10 +1991,10 @@ static Lisp_Object mule_make_string (unsigned char *p, int l) { unsigned char cbuf[4096]; - + c2mu (p,l,cbuf); return (make_string (cbuf,strlen (cbuf))); -} +} /* return the MULE internal string length of EUC string */ /* Modified by sb to return a character count not byte count. */ @@ -1596,7 +2003,7 @@ mule_strlen (unsigned char *p, int l) { unsigned char ch, *cp = p; int len = 0; - + while ((cp < p + l) && (ch = *cp)) { if ((unsigned char) ch == ISO_CODE_SS2) @@ -1617,7 +2024,7 @@ mule_strlen (unsigned char *p, int l) else { len++; - cp++; + cp++; } } return (len); @@ -1625,11 +2032,11 @@ mule_strlen (unsigned char *p, int l) /* count number of characters */ static void -count_char (unsigned char *p, int len, int pos, int rev, int *clen, int *cpos, - int *crev) +count_char (unsigned char *p, int len, int pos, int rev, + Fixnum *clen, Fixnum *cpos, Fixnum *crev) { unsigned char *q = p; - + *clen = *cpos = *crev = 0; if (len == 0) return; while (q < p + pos) @@ -1643,7 +2050,7 @@ count_char (unsigned char *p, int len, int pos, int rev, int *clen, int *cpos, (*clen)++; (*crev)++; if (*q++ & 0x80) q++; - } + } while (q < p + len) { (*clen)++;