summaryrefslogtreecommitdiff
path: root/core/src/xmake/string/lastof.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/xmake/string/lastof.c')
-rw-r--r--core/src/xmake/string/lastof.c52
1 files changed, 28 insertions, 24 deletions
diff --git a/core/src/xmake/string/lastof.c b/core/src/xmake/string/lastof.c
index 8e6f42300..8785e3987 100644
--- a/core/src/xmake/string/lastof.c
+++ b/core/src/xmake/string/lastof.c
@@ -22,8 +22,8 @@
/* //////////////////////////////////////////////////////////////////////////////////////
* trace
*/
-#define TB_TRACE_MODULE_NAME "string_lastof"
-#define TB_TRACE_MODULE_DEBUG (0)
+#define TB_TRACE_MODULE_NAME "string_lastof"
+#define TB_TRACE_MODULE_DEBUG (0)
/* //////////////////////////////////////////////////////////////////////////////////////
* includes
@@ -33,16 +33,14 @@
/* //////////////////////////////////////////////////////////////////////////////////////
* private implementation
*/
-static tb_void_t xm_string_lastof_str(lua_State* lua, tb_char_t const* cstr, tb_size_t nstr, tb_char_t const* csubstr, tb_size_t nsubstr)
-{
+static tb_void_t xm_string_lastof_str(
+ lua_State *lua, tb_char_t const *cstr, tb_size_t nstr, tb_char_t const *csubstr, tb_size_t nsubstr) {
// find it
- tb_char_t const* curr = tb_null;
- tb_char_t const* next = cstr;
- do
- {
+ tb_char_t const *curr = tb_null;
+ tb_char_t const *next = cstr;
+ do {
next = tb_strstr(next, csubstr); // faster than tb_strnstr()
- if (next)
- {
+ if (next) {
curr = next;
next += nsubstr;
}
@@ -50,14 +48,19 @@ static tb_void_t xm_string_lastof_str(lua_State* lua, tb_char_t const* cstr, tb_
} while (!next);
// found?
- if (curr) lua_pushinteger(lua, curr - cstr + 1);
- else lua_pushnil(lua);
+ if (curr) {
+ lua_pushinteger(lua, curr - cstr + 1);
+ } else {
+ lua_pushnil(lua);
+ }
}
-static tb_void_t xm_string_lastof_chr(lua_State* lua, tb_char_t const* cstr, tb_size_t nstr, tb_char_t ch)
-{
- tb_char_t const* pos = tb_strrchr(cstr, ch); // faster than tb_strnrchr()
- if (pos) lua_pushinteger(lua, pos - cstr + 1);
- else lua_pushnil(lua);
+static tb_void_t xm_string_lastof_chr(lua_State *lua, tb_char_t const *cstr, tb_size_t nstr, tb_char_t ch) {
+ tb_char_t const *pos = tb_strrchr(cstr, ch); // faster than tb_strnrchr()
+ if (pos) {
+ lua_pushinteger(lua, pos - cstr + 1);
+ } else {
+ lua_pushnil(lua);
+ }
}
/* //////////////////////////////////////////////////////////////////////////////////////
@@ -69,22 +72,23 @@ static tb_void_t xm_string_lastof_chr(lua_State* lua, tb_char_t const* cstr, tb_
* @param str the string
* @param substr the substring
*/
-tb_int_t xm_string_lastof(lua_State* lua)
-{
- // check
+tb_int_t xm_string_lastof(lua_State *lua) {
tb_assert_and_check_return_val(lua, 0);
// get string
size_t nstr = 0;
- tb_char_t const* cstr = luaL_checklstring(lua, 1, &nstr);
+ tb_char_t const *cstr = luaL_checklstring(lua, 1, &nstr);
// get substring
size_t nsubstr = 0;
- tb_char_t const* csubstr = luaL_checklstring(lua, 2, &nsubstr);
+ tb_char_t const *csubstr = luaL_checklstring(lua, 2, &nsubstr);
// lastof it
lua_newtable(lua);
- if (nsubstr == 1) xm_string_lastof_chr(lua, cstr, (tb_size_t)nstr, csubstr[0]);
- else xm_string_lastof_str(lua, cstr, (tb_size_t)nstr, csubstr, nsubstr);
+ if (nsubstr == 1) {
+ xm_string_lastof_chr(lua, cstr, (tb_size_t)nstr, csubstr[0]);
+ } else {
+ xm_string_lastof_str(lua, cstr, (tb_size_t)nstr, csubstr, nsubstr);
+ }
return 1;
}