diff options
Diffstat (limited to 'lua/lua-plugin-init.c')
-rw-r--r-- | lua/lua-plugin-init.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lua/lua-plugin-init.c b/lua/lua-plugin-init.c index 8469cca..66f50e4 100644 --- a/lua/lua-plugin-init.c +++ b/lua/lua-plugin-init.c @@ -87,10 +87,10 @@ static int ime_push_string(lua_State* L, const char * s, static int ime_trim_string_left(lua_State* L){ size_t l; int start, end; - const char * s = luaL_checklstring(L, 1, &l); + const char * s = lua_tolstring(L, 1, &l); IME_TRIM_PRECHECK; - start = 0; end = strlen(s); + start = 0; end = l; while( ime_is_white_space(s[start])){ start++; } @@ -100,11 +100,11 @@ static int ime_trim_string_left(lua_State* L){ static int ime_trim_string_right(lua_State* L){ size_t l; int start, end; - const char * s = luaL_checklstring(L, 1, &l); + const char * s = lua_tolstring(L, 1, &l); IME_TRIM_PRECHECK; - start = 0; end = strlen(s); - while( ime_is_white_space(s[end - 1])){ + start = 0; end = l; + while( ime_is_white_space(s[end - 1]) && end > 0){ end--; } @@ -113,14 +113,14 @@ static int ime_trim_string_right(lua_State* L){ static int ime_trim_string(lua_State* L){ size_t l; int start, end; - const char * s = luaL_checklstring(L, 1, &l); + const char * s = lua_tolstring(L, 1, &l); IME_TRIM_PRECHECK; - start = 0; end = strlen(s); + start = 0; end = l; while( ime_is_white_space(s[start])){ start++; } - while( ime_is_white_space(s[end - 1])){ + while( ime_is_white_space(s[end - 1]) && end > 0){ end--; } |