summaryrefslogtreecommitdiffstats
path: root/lua/lua-plugin-init.c
diff options
context:
space:
mode:
authorPeng Wu <epico@dhcp-65-116.nay.redhat.com>2010-03-31 17:45:59 +0800
committerPeng Wu <alexepico@gmail.com>2010-05-19 10:09:32 +0800
commit870473405c70bb592d80cbe291acf1470dc5468e (patch)
treefa600448d9eb3e1877a7207c558f8b7e010ad6a0 /lua/lua-plugin-init.c
parent3295f6ac1d2b7232926840b1285703eae93f2573 (diff)
downloadibus-libpinyin-870473405c70bb592d80cbe291acf1470dc5468e.tar.gz
ibus-libpinyin-870473405c70bb592d80cbe291acf1470dc5468e.tar.xz
ibus-libpinyin-870473405c70bb592d80cbe291acf1470dc5468e.zip
add some test cases and safe arguments check.
Diffstat (limited to 'lua/lua-plugin-init.c')
-rw-r--r--lua/lua-plugin-init.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/lua/lua-plugin-init.c b/lua/lua-plugin-init.c
index 3f854e5..eaa7ad0 100644
--- a/lua/lua-plugin-init.c
+++ b/lua/lua-plugin-init.c
@@ -168,12 +168,22 @@ static int ime_split_string(lua_State * L){
guint str_vec_len = 0; int i;
const char * sep;
const char * str = lua_tolstring(L, 1, NULL);
+
+ if ( NULL == str || '\0' == str[0]){
+ lua_newtable(L);
+ return 1;
+ }
sep = lua_tolstring(L, 2, NULL);
- str_vec = g_strsplit(str, sep, 0);
+ if ( NULL == sep || '\0' == sep[0]){
+ lua_newtable(L);
+ return 1;
+ }
+ str_vec = g_strsplit(str, sep, 0);
str_vec_len = g_strv_length(str_vec);
+
lua_createtable(L, str_vec_len, 0);
for ( i = 0; i < str_vec_len; ++i){
lua_pushinteger(L, i + 1);