diff options
author | Peng Wu <epico@dhcp-65-116.nay.redhat.com> | 2010-04-13 15:55:07 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2010-05-19 10:09:32 +0800 |
commit | c3bc5bd52879a85a7a6bfd4e2baefbe7cf37bc01 (patch) | |
tree | 75937643ee4b3fcba20920752ebfd98f19e1b6c2 /lua/lua-plugin-init.c | |
parent | 604d367fc223e142617b93f550dc7aa10f859848 (diff) | |
download | ibus-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.c | 19 |
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"); |