commit: f62b22d9ca2dc996de193b1e998af34f276b316b Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Wed Sep 6 13:40:02 2017 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Wed Sep 6 13:40:02 2017 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f62b22d9
eapi7-ver.eclass: Support using 0th version sep eclass/eapi7-ver.eclass | 15 +++++++++++---- eclass/tests/eapi7-ver.sh | 3 ++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/eclass/eapi7-ver.eclass b/eclass/eapi7-ver.eclass index e2458deeb7b..70a1b3e9847 100644 --- a/eclass/eapi7-ver.eclass +++ b/eclass/eapi7-ver.eclass @@ -31,7 +31,7 @@ _version_parse_range() { [[ $1 =~ ^([0-9]+)(-([0-9]*))?$ ]] || die start=${BASH_REMATCH[1]} [[ ${BASH_REMATCH[2]} ]] && end=${BASH_REMATCH[3]} || end=${start} - [[ ${start} -gt 0 ]] && [[ -z ${end} || ${start} -le ${end} ]] || die + [[ ${start} -ge 0 ]] && [[ -z ${end} || ${start} -le ${end} ]] || die } # RETURNS: @@ -51,17 +51,24 @@ _version_split() { } version_cut() { - local start end + local start end istart iend local -a comp _version_parse_range "$1" _version_split "${2-${PV}}" local IFS= + if [[ ${start} -gt 0 ]]; then + istart=$(( (start-1)*2 + 1 )) + iend=$(( (end-start)*2 + 1 )) + else + istart=0 + iend=$(( (end-start)*2 )) + fi if [[ ${end} ]]; then - echo "${comp[*]:(start-1)*2+1:(end-start)*2+1}" + echo "${comp[*]:istart:iend}" else - echo "${comp[*]:(start-1)*2+1}" + echo "${comp[*]:istart}" fi } diff --git a/eclass/tests/eapi7-ver.sh b/eclass/tests/eapi7-ver.sh index 0f3a1f37e86..2bac732018b 100755 --- a/eclass/tests/eapi7-ver.sh +++ b/eclass/tests/eapi7-ver.sh @@ -30,13 +30,14 @@ teq 1.2.3 version_cut 1- 1.2.3 teq 3b version_cut 3-4 1.2.3b_alpha4 teq alpha version_cut 5 1.2.3b_alpha4 teq 1.2 version_cut 1-2 .1.2.3 -#teq .1.2 version_cut 0-2 .1.2.3 +teq .1.2 version_cut 0-2 .1.2.3 teq 2.3 version_cut 2-3 1.2.3. teq 2.3. version_cut 2- 1.2.3. teq 1.23-b_alpha4 version_rs 3 - 2 "" 1.2.3b_alpha4 teq a1b_2-c-3-d4e5 version_rs 3-5 _ 4-6 - a1b2c3d4e5 teq .1-2.3 version_rs 1 - .1.2.3 +teq -1.2.3 version_rs 0 - .1.2.3 txf version_cut foo 1.2.3 #txf version_rs 5-3 _ a1b2c3d4e5