diff options
| author | ruki <[email protected]> | 2015-04-30 15:16:35 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2015-04-30 15:16:35 +0800 |
| commit | b58ecc2194967e75375116db9ca782cdfe261022 (patch) | |
| tree | 87229347340351578fc44a8aeea69c3cb7812f28 /core/src/xmake/string | |
| parent | 84999518105e894be127ceb3237a3d260f23cda9 (diff) | |
add option module
Diffstat (limited to 'core/src/xmake/string')
| -rw-r--r-- | core/src/xmake/string/prefix.h | 35 | ||||
| -rwxr-xr-x | core/src/xmake/string/startswith.c | 53 |
2 files changed, 88 insertions, 0 deletions
diff --git a/core/src/xmake/string/prefix.h b/core/src/xmake/string/prefix.h new file mode 100644 index 000000000..ef2779f9f --- /dev/null +++ b/core/src/xmake/string/prefix.h @@ -0,0 +1,35 @@ +/*!The Automatic Cross-platform Build Tool + * + * XMake is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * XMake is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with XMake; + * If not, see <a href="http://www.gnu.org/licenses/"> http://www.gnu.org/licenses/</a> + * + * Copyright (C) 2009 - 2015, ruki All rights reserved. + * + * @author ruki + * @file prefix.h + * + */ +#ifndef XM_STRING_PREFIX_H +#define XM_STRING_PREFIX_H + +/* ////////////////////////////////////////////////////////////////////////////////////// + * includes + */ +#include "../prefix.h" +#include "luajit/luajit.h" + + +#endif + + diff --git a/core/src/xmake/string/startswith.c b/core/src/xmake/string/startswith.c new file mode 100755 index 000000000..b7516e129 --- /dev/null +++ b/core/src/xmake/string/startswith.c @@ -0,0 +1,53 @@ +/*!The Automatic Cross-platform Build Tool + * + * XMake is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * XMake is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with XMake; + * If not, see <a href="http://www.gnu.org/licenses/"> http://www.gnu.org/licenses/</a> + * + * Copyright (C) 2009 - 2015, ruki All rights reserved. + * + * @author ruki + * @file startswith.c + * + */ + +/* ////////////////////////////////////////////////////////////////////////////////////// + * trace + */ +#define TB_TRACE_MODULE_NAME "startswith" +#define TB_TRACE_MODULE_DEBUG (0) + +/* ////////////////////////////////////////////////////////////////////////////////////// + * includes + */ +#include "prefix.h" + +/* ////////////////////////////////////////////////////////////////////////////////////// + * implementation + */ +tb_int_t xm_string_startswith(lua_State* lua) +{ + // check + tb_assert_and_check_return_val(lua, 0); + + // get the string and prefix + tb_char_t const* string = luaL_optstring(lua, 1, tb_null); + tb_char_t const* prefix = luaL_optstring(lua, 2, tb_null); + tb_check_return_val(string && prefix, 0); + + // done string:startswith(prefix) + lua_pushboolean(lua, !tb_strncmp(string, prefix, tb_strlen(prefix))); + + // ok + return 1; +} |
