diff options
| author | ruki <[email protected]> | 2017-09-14 00:33:00 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-09-13 21:18:02 +0800 |
| commit | d0ab158cac68ffc22396c8d9a83624625ca05f7c (patch) | |
| tree | bfee14c99d0a4077ffdd0a1ddf1025cc6ea71c9d /core/src | |
| parent | b1af9888679f0ac9384bba23a1b9d99d7b165db8 (diff) | |
improve semver satisfies
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/xmake/semver/satisfies.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/core/src/xmake/semver/satisfies.c b/core/src/xmake/semver/satisfies.c index f630558d9..e22bb8582 100644 --- a/core/src/xmake/semver/satisfies.c +++ b/core/src/xmake/semver/satisfies.c @@ -52,6 +52,24 @@ tb_int_t xm_semver_satisfies(lua_State* lua) tb_char_t const* range_str = luaL_checkstring(lua, 2); tb_assert_and_check_return_val(version_str && range_str, 0); + // parse the version range string + semver_range_t range = {0}; + if (semver_rangen(&range, range_str, tb_strlen(range_str))) + { + // is branch name? try to match it + if (!tb_strcmp(version_str, range_str)) + { + lua_pushboolean(lua, tb_true); + return 1; + } + else + { + lua_pushnil(lua); + lua_pushfstring(lua, "unable to parse semver range '%s'", range_str); + return 2; + } + } + // parse the version string semver_t semver = {0}; if (semvern(&semver, version_str, tb_strlen(version_str))) @@ -61,16 +79,6 @@ tb_int_t xm_semver_satisfies(lua_State* lua) return 2; } - // parse the version range string - semver_range_t range = {0}; - if (semver_rangen(&range, range_str, tb_strlen(range_str))) - { - semver_dtor(&semver); - lua_pushnil(lua); - lua_pushfstring(lua, "unable to parse semver range '%s'", range_str); - return 2; - } - // satisfies this range? lua_pushboolean(lua, semver_range_match(semver, range)); semver_dtor(&semver); |
