diff options
author | Peng Wu <epico@dhcp-65-116.nay.redhat.com> | 2010-03-31 17:45:59 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2010-05-19 10:09:32 +0800 |
commit | 870473405c70bb592d80cbe291acf1470dc5468e (patch) | |
tree | fa600448d9eb3e1877a7207c558f8b7e010ad6a0 /lua/lua-plugin-init.c | |
parent | 3295f6ac1d2b7232926840b1285703eae93f2573 (diff) | |
download | ibus-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.c | 12 |
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); |