/*=*/
-/***ja
+/***oldja
@addtogroup m17nInputMethod
@brief ÆþÎϥ᥽¥Ã¥ÉÍÑAPI
/** Symbols for key events. */
static MSymbol one_char_symbol[256];
+static MSymbol M_key_alias;
+
/** Structure to hold a map. */
struct MIMMap
MInputMethodInfo *im_info = (MInputMethodInfo *) ic->im->info;
MInputContextInfo *ic_info = (MInputContextInfo *) ic->info;
MIMMap *map = ic_info->map;
- MIMMap *submap;
+ MIMMap *submap = NULL;
MSymbol key = ic_info->keys[ic_info->key_head];
int i;
- submap = (map->submaps ? mplist_get (map->submaps, key) : NULL);
+ if (map->submaps)
+ {
+ submap = mplist_get (map->submaps, key);
+ if (! submap && (key = msymbol_get (key, M_key_alias)) != Mnil)
+ submap = mplist_get (map->submaps, key);
+ }
+
if (submap)
{
mtext_cpy (ic->preedit, ic_info->preedit_saved);
Minit = msymbol ("init");
Mfini = msymbol ("fini");
+ M_key_alias = msymbol (" key-alias");
+
buf[0] = 'C';
buf[1] = '-';
buf[3] = '\0';
for (i = 0, buf[2] = '@'; i < ' '; i++, buf[2]++)
{
+ one_char_symbol[i] = msymbol (buf);
if (key_names[i])
- one_char_symbol[i] = msymbol (key_names[i]);
- else
- one_char_symbol[i] = msymbol (buf);
+ msymbol_put (one_char_symbol[i], M_key_alias, msymbol (key_names[i]));
}
for (buf[2] = i; i < 127; i++, buf[2]++)
one_char_symbol[i] = msymbol (buf + 2);
buf2[1] = '-';
for (buf[4] = '@'; i < 160; i++, buf[4]++)
{
+ one_char_symbol[i] = msymbol (buf);
if (key_names[i - 128])
{
strcpy (buf2 + 2, key_names[i - 128]);
- one_char_symbol[i] = msymbol (buf2);
+ msymbol_put (one_char_symbol[i], M_key_alias, msymbol (buf2));
}
- else
- one_char_symbol[i] = msymbol (buf);
}
- for (buf[4] = i - 128; i < 255; i++, buf[2]++)
+ for (buf[4] = i - 128; i < 255; i++, buf[4]++)
one_char_symbol[i] = msymbol (buf + 2);
one_char_symbol[i] = msymbol ("M-Delete");
dependent arguments $ARG of the functions whose name begin with
"minput_" are all ignored. */
-/***ja
+/***oldja
@brief ÆâÉôÆþÎϥ᥽¥Ã¥ÉÍѥǥե©¥ë¥ÈÆþÎϥɥ饤¥Ð
ÆþÎϥɥ饤¥Ð minput_default_driver ¤ÏÆâÉôÆþÎϥ᥽¥Ã¥ÉÍѤΥǥե©¥ë
$ARG is set in the member @c arg of the structure MInputMethod so
that the input driver can refer to it. */
-/***ja
+/***oldja
@brief ÆþÎϥ᥽¥Ã¥É¤ò¥ª¡¼¥×¥ó¤¹¤ë
´Ø¿ô mim_open () ¤Ï¸À¸ì $LANGUAGE ¤È̾Á° $NAME ¤ËŬ¹ç¤¹¤ëÆþÎϥ᥽¥Ã
The minput_close_im () function closes the input method $IM, which
must have been created by minput_open_im (). */
-/***ja
+/***oldja
@brief ÆþÎϥ᥽¥Ã¥É¤ò¥¯¥í¡¼¥º¤¹¤ë
´Ø¿ô minput_close_im () ¤Ï¡¢ÆþÎϥ᥽¥Ã¥É $IM ¤ò¥¯¥í¡¼¥º¤¹¤ë¡£¤³¤Î
If an input context is successfully created, minput_create_ic ()
returns a pointer to it. Otherwise it returns @c NULL. */
-/***ja
+/***oldja
@brief ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤òÀ¸À®¤¹¤ë
´Ø¿ô minput_create_ic () ¤ÏÆþÎϥ᥽¥Ã¥É $IM ¤ËÂбþ¤¹¤ëÆþÎÏ¥³¥ó¥Æ¥¯
callback functions corresponding to #Minput_preedit_done,
#Minput_status_done, and #Mcandidate_done in this order. */
-/***ja
+/***oldja
@brief ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤òÇ˲õ¤¹¤ë
´Ø¿ô minput_destroy_ic () ¤Ï¡¢ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È $IC ¤òÇ˲õ¤¹¤ë¡£¤³
the caller should handle the key, for instance, by calling the
function minput_lookup () with the same $KEY. */
-/***ja
+/***oldja
@brief ÆþÎÏ¥¡¼¤Î¥Õ¥£¥ë¥¿¥ê¥ó¥°¤ò¤¹¤ë
´Ø¿ô minput_filter () ¤ÏÆþÎÏ¥¡¼ $KEY ¤òÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È $IC ¤Ë±þ
returns 0. Otherwise, returns -1, even in that case, some text
may be produced in $MT. */
-/***ja
+/***oldja
@brief ÆþÎϥ᥽¥Ã¥É¤¬ºî¤Ã¤¿¥Æ¥¥¹¥È¤Î³ÍÆÀ
´Ø¿ô minput_lookup () ¤ÏÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È $IC Ãæ¤Î¥Æ¥¥¹¥È¤ò³ÍÆÀ¤¹
$MT may be NULL, in which case, the input method can't get
information about the text around the spot. */
-/***ja
+/***oldja
@brief ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤Î¥¹¥Ý¥Ã¥È¤òÀßÄꤹ¤ë
´Ø¿ô minput_set_spot () ¤Ï¡¢ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È $IC ¤Î¥¹¥Ý¥Ã¥È¤ò¡¢ºÂ