table of contents
minput_config_command(3m17n) | The m17n Library | minput_config_command(3m17n) |
NAME¶
minput_config_command -
SYNOPSIS¶
int minput_config_command (MSymbol language, MSymbol name, MSymbol command, MPlist * keyseqlist)
DESCRIPTION¶
@brief Configure the key sequence of an input method command. The minput_config_command() function assigns a list of key sequences @b keyseqlist to the command @b command of the input method specified by @b language and @b name. If @b keyseqlist is a non-empty plist, it must be a list of key sequences, and each key sequence must be a plist of symbols. If @b keyseqlist is an empty plist, any configuration and customization of the command are cancelled, and default key sequences become effective. If @b keyseqlist is NULL, the configuration of the command is canceled, and the original key sequences (what saved in per-user customization file, or the default one) become effective. In the latter two cases, @b command can be #Mnil to make all the commands of the input method the target of the operation. If @b name is #Mnil, this function configures the key assignment of a global command, not that of a specific input method. The configuration takes effect for input methods opened or re-opened later in the current session. In order to make the configuration take effect for the future session, it must be saved in a per-user customization file by the function minput_save_config(). @par Return value: If the operation was successful, this function returns 0, otherwise returns -1. The operation fails in these cases: <ul> <li>@b keyseqlist is not in a valid form. <li>@b command is not available for the input method. <li>@b language and @b name do not specify an existing input method. </ul> @par See Also: minput_get_commands(), minput_save_config().
Example:¶
/* Add "C-x u" to the "start" command of Unicode input method. */ {
MSymbol start_command = msymbol ("start");
MSymbol unicode = msymbol ("unicode");
MPlist *cmd, *plist, *key_seq_list, *key_seq;
/* At first get the current key-sequence assignment. */
cmd = minput_get_command (Mt, unicode, start_command);
if (! cmd)
{
/* The input method does not have the command "start". Here
should come some error handling code. */
}
/* Now CMD == ((start DESCRIPTION STATUS KEY-SEQUENCE ...) ...).
Extract the part (KEY-SEQUENCE ...). */
plist = mplist_next (mplist_next (mplist_next (mplist_value (cmd))));
/* Copy it because we should not modify it directly. */
key_seq_list = mplist_copy (plist);
key_seq = mplist();
mplist_add (key_seq, Msymbol, msymbol ("C-x"));
mplist_add (key_seq, Msymbol, msymbol ("u"));
mplist_add (key_seq_list, Mplist, key_seq);
m17n_object_unref (key_seq);
minput_config_command (Mt, unicode, start_command, key_seq_list);
m17n_object_unref (key_seq_list); }
COPYRIGHT¶
Copyright (C) 2001 Information-technology Promotion Agency (IPA)
Copyright (C) 2001-2011 National Institute of Advanced Industrial Science and
Technology (AIST)
Permission is granted to copy, distribute and/or modify this document under
the terms of the GNU Free Documentation License
<http://www.gnu.org/licenses/fdl.html>.
Mon Sep 25 2023 | Version 1.8.4 |