summaryrefslogtreecommitdiff
path: root/modules/im/ximcp/imThaiIc.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/im/ximcp/imThaiIc.c')
-rw-r--r--modules/im/ximcp/imThaiIc.c33
1 files changed, 24 insertions, 9 deletions
diff --git a/modules/im/ximcp/imThaiIc.c b/modules/im/ximcp/imThaiIc.c
index bead0285..711654f5 100644
--- a/modules/im/ximcp/imThaiIc.c
+++ b/modules/im/ximcp/imThaiIc.c
@@ -32,6 +32,7 @@ THIS SOFTWARE.
frankyling@hgrd01.enet.dec.com
******************************************************************/
+/* $XFree86: xc/lib/X11/imThaiIc.c,v 1.4 2001/01/17 19:41:52 dawes Exp $ */
#include <stdio.h>
#include <X11/Xlib.h>
@@ -68,9 +69,11 @@ _XimThaiDestroyIC(xic)
Xfree(ic->private.local.context->mb);
Xfree(ic->private.local.context->wc);
+ Xfree(ic->private.local.context->utf8);
Xfree(ic->private.local.context);
Xfree(ic->private.local.composed->mb);
Xfree(ic->private.local.composed->wc);
+ Xfree(ic->private.local.composed->utf8);
Xfree(ic->private.local.composed);
return;
}
@@ -96,8 +99,8 @@ _XimThaiSetFocus(xic)
return;
}
-Private char *
-_XimThaiMbReset(xic)
+Private void
+_XimThaiReset(xic)
XIC xic;
{
Xic ic = (Xic)xic;
@@ -105,19 +108,23 @@ _XimThaiMbReset(xic)
ic->private.local.thai.keysym = 0;
ic->private.local.composed->mb[0] = '\0';
ic->private.local.composed->wc[0] = 0;
- return((char *)NULL);
+ ic->private.local.composed->utf8[0] = '\0';
+}
+
+Private char *
+_XimThaiMbReset(xic)
+ XIC xic;
+{
+ _XimThaiReset(xic);
+ return (char *)NULL;
}
Private wchar_t *
_XimThaiWcReset(xic)
XIC xic;
{
- Xic ic = (Xic)xic;
- ic->private.local.thai.comp_state = 0;
- ic->private.local.thai.keysym = 0;
- ic->private.local.composed->mb[0] = '\0';
- ic->private.local.composed->wc[0] = 0;
- return((wchar_t *)NULL);
+ _XimThaiReset(xic);
+ return (wchar_t *)NULL;
}
Private XICMethodsRec Thai_ic_methods = {
@@ -128,8 +135,10 @@ Private XICMethodsRec Thai_ic_methods = {
_XimLocalGetICValues, /* get_values */
_XimThaiMbReset, /* mb_reset */
_XimThaiWcReset, /* wc_reset */
+ _XimThaiMbReset, /* utf8_reset */
_XimLocalMbLookupString, /* mb_lookup_string */
_XimLocalWcLookupString, /* wc_lookup_string */
+ _XimLocalUtf8LookupString /* utf8_lookup_string */
};
XIC
@@ -160,6 +169,9 @@ _XimThaiCreateIC(im, values)
if ((ic->private.local.context->wc = (wchar_t *)Xmalloc(10*sizeof(wchar_t)))
== (wchar_t *)NULL)
goto Set_Error;
+ if ((ic->private.local.context->utf8 = (char *)Xmalloc(10))
+ == (char *)NULL)
+ goto Set_Error;
if ((ic->private.local.composed = (DefTree *)Xmalloc(sizeof(DefTree)))
== (DefTree *)NULL)
goto Set_Error;
@@ -169,6 +181,9 @@ _XimThaiCreateIC(im, values)
if ((ic->private.local.composed->wc = (wchar_t *)Xmalloc(10*sizeof(wchar_t)))
== (wchar_t *)NULL)
goto Set_Error;
+ if ((ic->private.local.composed->utf8 = (char *)Xmalloc(10))
+ == (char *)NULL)
+ goto Set_Error;
ic->private.local.thai.comp_state = 0;
ic->private.local.thai.keysym = 0;