summaryrefslogtreecommitdiffstats
path: root/lua/lua-plugin-init.c
diff options
context:
space:
mode:
authorPeng Wu <epico@dhcp-65-116.nay.redhat.com>2010-04-13 15:55:07 +0800
committerPeng Wu <alexepico@gmail.com>2010-05-19 10:09:32 +0800
commitc3bc5bd52879a85a7a6bfd4e2baefbe7cf37bc01 (patch)
tree75937643ee4b3fcba20920752ebfd98f19e1b6c2 /lua/lua-plugin-init.c
parent604d367fc223e142617b93f550dc7aa10f859848 (diff)
downloadibus-libpinyin-c3bc5bd52879a85a7a6bfd4e2baefbe7cf37bc01.tar.gz
ibus-libpinyin-c3bc5bd52879a85a7a6bfd4e2baefbe7cf37bc01.tar.xz
ibus-libpinyin-c3bc5bd52879a85a7a6bfd4e2baefbe7cf37bc01.zip
ime register command in progress.
Diffstat (limited to 'lua/lua-plugin-init.c')
-rw-r--r--lua/lua-plugin-init.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/lua/lua-plugin-init.c b/lua/lua-plugin-init.c
index 42c6f5c..996b314 100644
--- a/lua/lua-plugin-init.c
+++ b/lua/lua-plugin-init.c
@@ -29,6 +29,25 @@ void lua_plugin_openlibs (lua_State *L) {
}
}
+void lua_plugin_store_plugin(lua_State * L, IBusEnginePlugin * plugin){
+ luaL_newmetatable(L, LUA_IMELIBNAME);
+ lua_pushliteral(L, LUA_IMELIB_CONTEXT);
+ lua_pushlightuserdata(L, plugin);
+ lua_rawset(L, -3);
+ lua_pop(L, 1);
+}
+
+IBusEnginePlugin * lua_plugin_retrieve_plugin(lua_State * L) {
+ luaL_newmetatable(L, LUA_IMELIBNAME);
+ lua_pushliteral(L, LUA_IMELIB_CONTEXT);
+ lua_rawget(L, -2);
+ luaL_checktype(L, -1, LUA_TLIGHTUSERDATA);
+ IBusEnginePlugin * plugin = lua_touserdata(L, -1);
+ g_assert(IBUS_IS_ENGINE_PLUGIN(plugin));
+ lua_pop(L, 2);
+ return plugin;
+}
+
static int ime_get_last_commit(lua_State* L){
/*TODO: not implemented. */
fprintf(stderr, "TODO: ime_get_last_commit unimplemented.\n");