9 #include "ecore_private.h"
11 #include "Ecore_Input.h"
12 #include "ecore_input_private.h"
14 // some info on a big big big compose table
15 // http://cgit.freedesktop.org/xorg/lib/libX11/plain/nls/en_US.UTF-8/Compose.pre
16 // isolate compose tree into its own file - hand crafted into static const c
17 #include "ecore_input_compose.h"
19 EAPI Ecore_Compose_State
20 ecore_compose_get(const Eina_List *seq, char **seqstr_ret)
27 if (!seq) return ECORE_COMPOSE_NONE;
30 cend = (Comp *)comp + (sizeof(comp) / sizeof(comp[0]));
31 for (c = (Comp *)comp; c->s && s;)
33 // doesn't match -> jump to next level entry
34 if (!(!strcmp(s, c->s)))
39 return ECORE_COMPOSE_NONE;
45 // advance to next sequence member
51 // if advanced item jump is an endpoint - it's the string we want
54 if (seqstr_ret) *seqstr_ret = strdup(c->s);
55 return ECORE_COMPOSE_DONE;
59 if (i == 0) return ECORE_COMPOSE_NONE;
60 return ECORE_COMPOSE_MIDDLE;