summaryrefslogtreecommitdiff
path: root/IMdkit/i18nIMProto.c
diff options
context:
space:
mode:
Diffstat (limited to 'IMdkit/i18nIMProto.c')
-rw-r--r--IMdkit/i18nIMProto.c773
1 files changed, 773 insertions, 0 deletions
diff --git a/IMdkit/i18nIMProto.c b/IMdkit/i18nIMProto.c
new file mode 100644
index 0000000..618da9d
--- /dev/null
+++ b/IMdkit/i18nIMProto.c
@@ -0,0 +1,773 @@
+/******************************************************************
+Copyright 1993, 1994 by Digital Equipment Corporation, Maynard, Massachusetts,
+Copyright 1993, 1994 by Hewlett-Packard Company
+
+Copyright 1994, 1995 by Sun Microsystems, Inc.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the names of Digital or MIT not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL DIGITAL AND HEWLETT-PACKARD COMPANY BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ Author: Hiroyuki Miyamoto Digital Equipment Corporation
+ miyamoto@jrd.dec.com
+ Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc.
+
+ This version tidied and debugged by Steve Underwood May 1999
+
+******************************************************************/
+
+/* Protocol Packet frames */
+
+#include "FrameMgr.h"
+
+/* Data type definitions */
+
+static XimFrameRec ximattr_fr[] =
+{
+ _FRAME(BIT16), /* attribute ID */
+ _FRAME(BIT16), /* type of the value */
+ _FRAME(BIT16), /* length of im-attribute */
+ _FRAME(BARRAY), /* im-attribute */
+ _PAD4(2),
+ _FRAME(EOL),
+};
+
+static XimFrameRec xicattr_fr[] =
+{
+ _FRAME(BIT16), /* attribute ID */
+ _FRAME(BIT16), /* type of the value */
+ _FRAME(BIT16), /* length of ic-attribute */
+ _FRAME(BARRAY), /* ic-attribute */
+ _PAD4(2),
+ _FRAME(EOL),
+};
+
+static XimFrameRec ximattribute_fr[] =
+{
+ _FRAME(BIT16), /* attribute ID */
+ _FRAME(BIT16), /* value length */
+ _FRAME(BARRAY), /* value */
+ _PAD4(1),
+ _FRAME(EOL),
+};
+
+static XimFrameRec xicattribute_fr[] =
+{
+ _FRAME(BIT16), /* attribute ID */
+ _FRAME(BIT16), /* value length */
+ _FRAME(BARRAY), /* value */
+ _PAD4(1),
+ _FRAME(EOL),
+};
+
+static XimFrameRec ximtriggerkey_fr[] =
+{
+ _FRAME(BIT32), /* keysym */
+ _FRAME(BIT32), /* modifier */
+ _FRAME(BIT32), /* modifier mask */
+ _FRAME(EOL),
+};
+
+static XimFrameRec encodinginfo_fr[] =
+{
+ _FRAME(BIT16), /* length of encoding info */
+ _FRAME(BARRAY), /* encoding info */
+ _PAD4(2),
+ _FRAME(EOL),
+};
+
+static XimFrameRec str_fr[] =
+{
+ _FRAME(BIT8), /* number of byte */
+ _FRAME(BARRAY), /* string */
+ _FRAME(EOL),
+};
+
+static XimFrameRec xpcs_fr[] =
+{
+ _FRAME(BIT16), /* length of string in bytes */
+ _FRAME(BARRAY), /* string */
+ _PAD4(2),
+};
+
+static XimFrameRec ext_fr[] =
+{
+ _FRAME(BIT8), /* extension major-opcode */
+ _FRAME(BIT8), /* extension minor-opcode */
+ _FRAME(BIT16), /* length of extension name */
+ _FRAME(BARRAY), /* extension name */
+ _PAD4(1),
+ _FRAME(EOL),
+};
+
+static XimFrameRec inputstyle_fr[] =
+{
+ _FRAME(BIT32), /* inputstyle */
+ _FRAME(EOL),
+};
+/* Protocol definitions */
+
+xim_externaldef XimFrameRec attr_head_fr[] =
+{
+ _FRAME(BIT16), /* attribute id */
+ _FRAME(BIT16), /* attribute length */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec short_fr[] =
+{
+ _FRAME(BIT16), /* value */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec long_fr[] =
+{
+ _FRAME(BIT32), /* value */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec xrectangle_fr[] =
+{
+ _FRAME(BIT16), /* x */
+ _FRAME(BIT16), /* y */
+ _FRAME(BIT16), /* width */
+ _FRAME(BIT16), /* height */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec xpoint_fr[] =
+{
+ _FRAME(BIT16), /* x */
+ _FRAME(BIT16), /* y */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec fontset_fr[] =
+{
+ _FRAME(BIT16), /* length of base font name */
+ _FRAME(BARRAY), /* base font name list */
+ _PAD4(2), /* unused */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec input_styles_fr[] =
+{
+ _FRAME(BIT16), /* number of list */
+ _PAD4(1), /* unused */
+ _FRAME(ITER), /* XIMStyle list */
+ _FRAME(POINTER),
+ _PTR(inputstyle_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec packet_header_fr[] =
+{
+ _FRAME(BIT8), /* major-opcode */
+ _FRAME(BIT8), /* minor-opcode */
+ _FRAME(BIT16), /* length */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec error_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT16), /* flag */
+ _FRAME(BIT16), /* Error Code */
+ _FRAME(BIT16), /* length of error detail */
+ _FRAME(BIT16), /* type of error detail */
+ _FRAME(BARRAY), /* error detail */
+ _PAD4(1),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec connect_fr[] =
+{
+ _FRAME(BIT8), /* byte order */
+ _PAD2(1), /* unused */
+ _FRAME(BIT16), /* client-major-protocol-version */
+ _FRAME(BIT16), /* client-minor-protocol-version */
+ _BYTE_COUNTER(BIT16, 1), /* length of client-auth-protocol-names */
+ _FRAME(ITER), /* client-auth-protocol-names */
+ _FRAME(POINTER),
+ _PTR(xpcs_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec connect_reply_fr[] =
+{
+ _FRAME(BIT16), /* server-major-protocol-version */
+ _FRAME(BIT16), /* server-minor-protocol-version */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec auth_required_fr[] =
+{
+ _FRAME(BIT8), /* auth-protocol-index */
+ _FRAME(BIT8), /* auth-data1 */
+ _FRAME(BARRAY), /* auth-data2 */
+ _PAD4(3),
+ _FRAME(EOL),
+};
+
+
+xim_externaldef XimFrameRec auth_reply_fr[] =
+{
+ _FRAME(BIT8),
+ _FRAME(BARRAY),
+ _PAD4(2),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec auth_next_fr[] =
+{
+ _FRAME(BIT8), /* auth-data1 */
+ _FRAME(BARRAY), /* auth-data2 */
+ _PAD4(2),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec auth_setup_fr[] =
+{
+ _BYTE_COUNTER(BIT16, 2), /* number of client-auth-protocol-names */
+ _PAD4(1), /* unused */
+ _FRAME(ITER), /* server-auth-protocol-names */
+ _FRAME(POINTER),
+ _PTR(xpcs_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec auth_ng_fr[] =
+{
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec disconnect_fr[] =
+{
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec disconnect_reply_fr[] =
+{
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec open_fr[] =
+{
+ _FRAME(POINTER), /* locale name */
+ _PTR(str_fr),
+ _PAD4(1),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec open_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _BYTE_COUNTER(BIT16, 1), /* byte length of IM attributes supported */
+ _FRAME(ITER), /* IM attribute supported */
+ _FRAME(POINTER),
+ _PTR(ximattr_fr),
+ _BYTE_COUNTER(BIT16, 2), /* number of IC attribute supported */
+ _PAD4(1), /* unused */
+ _FRAME(ITER), /* IC attribute supported */
+ _FRAME(POINTER),
+ _PTR(xicattr_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec close_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _PAD4(1), /* unused */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec close_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _PAD4(1), /* unused */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec register_triggerkeys_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _PAD4(1), /* unused */
+ _BYTE_COUNTER(BIT32, 1), /* byte length of on-keys */
+ _FRAME(ITER), /* on-keys list */
+ _FRAME(POINTER),
+ _PTR(ximtriggerkey_fr),
+ _BYTE_COUNTER(BIT32, 1), /* byte length of off-keys */
+ _FRAME(ITER), /* off-keys list */
+ _FRAME(POINTER),
+ _PTR(ximtriggerkey_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec trigger_notify_fr[] =
+{
+ _FRAME(BIT16), /* input-mehotd-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* flag */
+ _FRAME(BIT32), /* index of keys list */
+ _FRAME(BIT32), /* client-select-event-mask */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec trigger_notify_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec set_event_mask_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* forward-event-mask */
+ _FRAME(BIT32), /* synchronous-event-mask */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec encoding_negotiation_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _BYTE_COUNTER(BIT16, 1), /* byte length of encodings listed by name */
+ _FRAME(ITER), /* supported list of encoding in IM library */
+ _FRAME(POINTER),
+ _PTR(str_fr),
+ _PAD4(1),
+ _BYTE_COUNTER(BIT16, 2), /* byte length of encodings listed by
+ detailed data */
+ _PAD4(1),
+ _FRAME(ITER), /* list of encodings supported in the
+ IM library */
+ _FRAME(POINTER),
+ _PTR(encodinginfo_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec encoding_negotiation_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* category of the encoding determined */
+ _FRAME(BIT16), /* index of the encoding dterminated */
+ _PAD4(1),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec query_extension_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _BYTE_COUNTER(BIT16, 1), /* byte length of extensions supported
+ by the IM library */
+ _FRAME(ITER), /* extensions supported by the IM library */
+ _FRAME(POINTER),
+ _PTR(str_fr),
+ _PAD4(1),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec query_extension_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _BYTE_COUNTER(BIT16, 1), /* byte length of extensions supported
+ by the IM server */
+ _FRAME(ITER), /* list of extensions supported by the
+ IM server */
+ _FRAME(POINTER),
+ _PTR(ext_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec get_im_values_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _BYTE_COUNTER(BIT16, 1), /* byte length of im-attribute-id */
+ _FRAME(ITER), /* im-attribute-id */
+ _FRAME(BIT16),
+ _PAD4(1),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec get_im_values_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _BYTE_COUNTER(BIT16, 1), /* byte length of im-attribute returned */
+ _FRAME(ITER), /* im-attribute returned */
+ _FRAME(POINTER),
+ _PTR(ximattribute_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec create_ic_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _BYTE_COUNTER(BIT16, 1), /* byte length of ic-attributes */
+ _FRAME(ITER), /* ic-attributes */
+ _FRAME(POINTER),
+ _PTR(xicattribute_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec create_ic_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec destroy_ic_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec destroy_ic_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec set_ic_values_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _BYTE_COUNTER(BIT16, 2), /* byte length of ic-attributes */
+ _PAD4(1),
+ _FRAME(ITER), /* ic-attribute */
+ _FRAME(POINTER),
+ _PTR(xicattribute_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec set_ic_values_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec get_ic_values_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _BYTE_COUNTER(BIT16, 1), /* byte length of ic-attribute-id */
+ _FRAME(ITER), /* ic-attribute */
+ _FRAME(BIT16),
+ _PAD4(2),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec get_ic_values_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _BYTE_COUNTER(BIT16, 2), /* byte length of ic-attribute */
+ _PAD4(1),
+ _FRAME(ITER), /* ic-attribute */
+ _FRAME(POINTER),
+ _PTR(xicattribute_fr),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec set_ic_focus_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec unset_ic_focus_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec forward_event_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT16), /* flag */
+ _FRAME(BIT16), /* sequence number */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec wire_keyevent_fr[] = {
+ _FRAME(BIT8), /* type */
+ _FRAME(BIT8), /* detail */
+ _FRAME(BIT16), /* serial number */
+ _FRAME(BIT32), /* time */
+ _FRAME(BIT32), /* root */
+ _FRAME(BIT32), /* window */
+ _FRAME(BIT32), /* subwindow */
+ _FRAME(BIT16), /* rootX */
+ _FRAME(BIT16), /* rootY */
+ _FRAME(BIT16), /* X */
+ _FRAME(BIT16), /* Y */
+ _FRAME(BIT16), /* state */
+ _FRAME(BIT8), /* sameScreen */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec sync_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec sync_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+#if 0
+xim_externaldef XimFrameRec commit_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT16), /* flag */
+ _FRAME(BIT16), /* byte length of committed string */
+ _FRAME(BARRAY), /* committed string */
+ _PAD4(1),
+ _BYTE_COUNTER(BIT16, 1), /* byte length of keysym */
+ _FRAME(ITER), /* keysym */
+ _FRAME(BIT32),
+ _PAD4(1),
+ _FRAME(EOL),
+};
+#endif
+
+xim_externaldef XimFrameRec commit_chars_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT16), /* flag */
+ _FRAME(BIT16), /* byte length of committed string */
+ _FRAME(BARRAY), /* committed string */
+ _PAD4(1),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec commit_both_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT16), /* flag */
+ _PAD4(1), /* unused */
+ _FRAME(BIT32), /* keysym */
+ _FRAME(BIT16), /* byte length of committed string */
+ _FRAME(BARRAY), /* committed string */
+ _PAD4(2),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec reset_ic_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec reset_ic_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT16), /* byte length of committed string */
+ _FRAME(BARRAY), /* committed string */
+ _PAD4(2),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec geometry_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec str_conversion_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* XIMStringConversionPosition */
+ _FRAME(BIT32), /* XIMStringConversionType */
+ _FRAME(BIT32), /* XIMStringConversionOperation */
+ _FRAME(BIT16), /* length to multiply the
+ XIMStringConversionType */
+ _FRAME(BIT16), /* length of the string to be
+ substituted */
+#if 0
+ _FRAME(BARRAY), /* string */
+ _PAD4(1),
+#endif
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec str_conversion_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* XIMStringConversionFeedback */
+ _FRAME(BIT16), /* length of the retrieved string */
+ _FRAME(BARRAY), /* retrieved string */
+ _PAD4(2),
+ _BYTE_COUNTER(BIT16, 2), /* number of feedback array */
+ _PAD4(1),
+ _FRAME(ITER), /* feedback array */
+ _FRAME(BIT32),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec preedit_start_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec preedit_start_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* return value */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec preedit_draw_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* caret */
+ _FRAME(BIT32), /* chg_first */
+ _FRAME(BIT32), /* chg_length */
+ _FRAME(BIT32), /* status */
+ _FRAME(BIT16), /* length of preedit string */
+ _FRAME(BARRAY), /* preedit string */
+ _PAD4(2),
+ _BYTE_COUNTER(BIT16, 2), /* number of feedback array */
+ _PAD4(1),
+ _FRAME(ITER), /* feedback array */
+ _FRAME(BIT32),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec preedit_caret_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* position */
+ _FRAME(BIT32), /* direction */
+ _FRAME(BIT32), /* style */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec preedit_caret_reply_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* position */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec preedit_done_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec status_start_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec status_draw_text_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* type */
+ _FRAME(BIT32), /* status */
+ _FRAME(BIT16), /* length of status string */
+ _FRAME(BARRAY), /* status string */
+ _PAD4(2),
+ _BYTE_COUNTER(BIT16, 2), /* number of feedback array */
+ _PAD4(1),
+ _FRAME(ITER), /* feedback array */
+ _FRAME(BIT32),
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec status_draw_bitmap_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* type */
+ _FRAME(BIT32), /* pixmap data */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec status_done_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec ext_set_event_mask_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT32), /* filter-event-mask */
+ _FRAME(BIT32), /* intercept-event-mask */
+ _FRAME(BIT32), /* select-event-mask */
+ _FRAME(BIT32), /* forward-event-mask */
+ _FRAME(BIT32), /* synchronous-event-mask */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec ext_forward_keyevent_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT16), /* flag */
+ _FRAME(BIT16), /* sequence number */
+ _FRAME(BIT8), /* xEvent.u.u.type */
+ _FRAME(BIT8), /* keycode */
+ _FRAME(BIT16), /* state */
+ _FRAME(BIT32), /* time */
+ _FRAME(BIT32), /* window */
+ _FRAME(EOL),
+};
+
+xim_externaldef XimFrameRec ext_move_fr[] =
+{
+ _FRAME(BIT16), /* input-method-ID */
+ _FRAME(BIT16), /* input-context-ID */
+ _FRAME(BIT16), /* X */
+ _FRAME(BIT16), /* Y */
+ _FRAME(EOL),
+};