diff options
-rw-r--r-- | lua/lua-plugin.c | 2 | ||||
-rw-r--r-- | lua/lua-plugin.h | 2 | ||||
-rw-r--r-- | src/PYPLuaConverterCandidates.cc | 10 | ||||
-rw-r--r-- | src/PYPLuaTriggerCandidates.cc | 13 |
4 files changed, 17 insertions, 10 deletions
diff --git a/lua/lua-plugin.c b/lua/lua-plugin.c index 2a193f3..167404c 100644 --- a/lua/lua-plugin.c +++ b/lua/lua-plugin.c @@ -416,7 +416,7 @@ static const lua_command_candidate_t * ibus_engine_plugin_get_candidate(lua_Stat /** * retrieve the first string value. (value has been copied.) */ -const char * ibus_engine_plugin_get_first_result(IBusEnginePlugin * plugin){ +gchar * ibus_engine_plugin_get_first_result(IBusEnginePlugin * plugin){ IBusEnginePluginPrivate * priv = IBUS_ENGINE_PLUGIN_GET_PRIVATE(plugin); const char * result = NULL; int type; lua_State * L = priv->L; diff --git a/lua/lua-plugin.h b/lua/lua-plugin.h index fb5f5b9..ebb2b2a 100644 --- a/lua/lua-plugin.h +++ b/lua/lua-plugin.h @@ -174,7 +174,7 @@ int ibus_engine_plugin_call(IBusEnginePlugin * plugin, const char * lua_function /** * retrieve the first string value. (value has been copied.) */ -const char * ibus_engine_plugin_get_first_result(IBusEnginePlugin * plugin); +gchar * ibus_engine_plugin_get_first_result(IBusEnginePlugin * plugin); /** * retrieve the retval string value. (value has been copied.) diff --git a/src/PYPLuaConverterCandidates.cc b/src/PYPLuaConverterCandidates.cc index e4608f4..a581c13 100644 --- a/src/PYPLuaConverterCandidates.cc +++ b/src/PYPLuaConverterCandidates.cc @@ -75,8 +75,9 @@ LuaConverterCandidates::processCandidates (std::vector<EnhancedCandidate> & cand ibus_engine_plugin_call (m_lua_plugin, converter, enhanced.m_display_string.c_str ()); - enhanced.m_display_string = - ibus_engine_plugin_get_first_result (m_lua_plugin); + gchar * string = ibus_engine_plugin_get_first_result (m_lua_plugin); + enhanced.m_display_string = string; + g_free (string); } return TRUE; @@ -100,8 +101,9 @@ LuaConverterCandidates::selectCandidate (EnhancedCandidate & enhanced) if (SELECT_CANDIDATE_MODIFY_IN_PLACE_AND_COMMIT == action) { ibus_engine_plugin_call (m_lua_plugin, converter, enhanced.m_display_string.c_str ()); - enhanced.m_display_string = - ibus_engine_plugin_get_first_result (m_lua_plugin); + gchar * string = ibus_engine_plugin_get_first_result (m_lua_plugin); + enhanced.m_display_string = string; + g_free (string); } return action; diff --git a/src/PYPLuaTriggerCandidates.cc b/src/PYPLuaTriggerCandidates.cc index 41534b4..808e97a 100644 --- a/src/PYPLuaTriggerCandidates.cc +++ b/src/PYPLuaTriggerCandidates.cc @@ -64,12 +64,15 @@ LuaTriggerCandidates::processCandidates (std::vector<EnhancedCandidate> & candid const char * lua_function_name = NULL; const char * text = m_editor->m_text; + gchar * string = NULL; if (ibus_engine_plugin_match_input (m_lua_plugin, text, &lua_function_name)) { ibus_engine_plugin_call (m_lua_plugin, lua_function_name, text); - enhanced.m_display_string = - ibus_engine_plugin_get_first_result (m_lua_plugin); + + string = ibus_engine_plugin_get_first_result (m_lua_plugin); + enhanced.m_display_string = string; + g_free (string); candidates.insert (pos, enhanced); return TRUE; @@ -81,8 +84,10 @@ LuaTriggerCandidates::processCandidates (std::vector<EnhancedCandidate> & candid if (ibus_engine_plugin_match_candidate (m_lua_plugin, text, &lua_function_name)) { ibus_engine_plugin_call (m_lua_plugin, lua_function_name, text); - enhanced.m_display_string = - ibus_engine_plugin_get_first_result (m_lua_plugin); + + string = ibus_engine_plugin_get_first_result (m_lua_plugin); + enhanced.m_display_string = string; + g_free (string); candidates.insert (pos, enhanced); return TRUE; |