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