.\" Copyright (C) 2001 Information-technology Promotion Agency (IPA) .\" Copyright (C) 2001-2003 .\" National Institute of Advanced Industrial Science and Technology (AIST) .\" This file si aprt of the m17n library documentation. .\" Permission is granted to copy, distribute and/or modify this document .\" under the terms of the GNU Free Documentation License, Version 1.2 or .\" any later version published by the Free Software Foundation; with no .\" Invariant Section, Front-Cover Texts "The m17n library documentation", .\" and no Back-Cover Texts. A copy of the license is included in the .\" appendix entitled "GNU Free Documentation License". .TH "minput_config_command" 3m17n "14 Jul 2007" "" "Version 1.4.0" "" "The m17n Library" \" -*- nroff -*- .ad l .nh .SH NAME minput_config_command - Configure the key sequence of an input method command. .SH SYNOPSIS int \fBminput_config_command\fP (\fBMSymbol\fP \fIlanguage\fP, \fBMSymbol\fP \fIname\fP, \fBMSymbol\fP \fIcommand\fP, \fBMPlist\fP * \fIkeyseqlist\fP) .SH DESCRIPTION The .ft B minput_config_command() .ft R function assigns a list of key sequences .ft B keyseqlist .ft R to the command .ft B command .ft R of the input method specified by .ft B language .ft R and .ft B name\fP. .ft R .PP If .ft B keyseqlist .ft R is a non-empty plist, it must be a list of key sequences, and each key sequence must be a plist of symbols. .PP If .ft B keyseqlist .ft R is an empty plist, any configuration and customization of the command are cancelled, and default key sequences become effective. .PP If .ft B keyseqlist .ft R 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. .PP In the latter two cases, .ft B command .ft R can be .ft B Mnil .ft R to make all the commands of the input method the target of the operation. .PP If .ft B name .ft R is .ft B Mnil\fP, .ft R this function configures the key assignment of a global command, not that of a specific input method. .PP 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 .ft B minput_save_config()\fP. .ft R .PP .SH RETURN VALUE .PP.RS 4 If the operation was successful, this function returns 0, otherwise returns -1. The operation fails in these cases: .PD 0 .IP "\(bu" 2 .SS keyseqlis is not in a valid form. .IP "\(bu" 2 .SS comman is not available for the input method. .IP "\(bu" 2 .SS language .ft R and .ft B nam do not specify an existing input method. .PP .RE .PP .SH "SEE ALSO" .PP.RS 4 \fBminput_get_commands()\fP, .ft R .ft B minput_save_config()\fP. .ft R .RE .PP .SS Example.RS 4 .PP .nf /* 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); } .fi .fi .RE .PP