add some test cases and safe arguments check.
authorPeng Wu <epico@dhcp-65-116.nay.redhat.com>
Wed, 31 Mar 2010 09:45:59 +0000 (17:45 +0800)
committerPeng Wu <alexepico@gmail.com>
Wed, 19 May 2010 02:09:32 +0000 (10:09 +0800)
lua/lua-plugin-init.c
lua/test.lua

index 3f854e5..eaa7ad0 100644 (file)
@@ -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);
index 2b012e9..166bcb3 100644 (file)
@@ -11,6 +11,9 @@ for i,v in ipairs(tab) do print(i, v) end
 tab = ime.split_string(nil, nil);
 for i,v in ipairs(tab) do print(i, v) end
 
+tab = ime.split_string("aa..bb..cc", nil);
+for i,v in ipairs(tab) do print(i, v) end
+
 tab = ime.split_string("aa..bb..cc", "..");
 print(ime.join_string(tab, ", "));