commit: f7a0474438f6571cf105fe7aa8bf3831f8bddb09
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 6 13:31:56 2017 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 6 13:31:56 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f7a04744
eapi7-ver.eclass: Shift component indexes to account for possible s0
eclass/eapi7-ver.eclass | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/eclass/eapi7-ver.eclass b/eclass/eapi7-ver.eclass
index 2485c45637b..e9f2c453514 100644
--- a/eclass/eapi7-ver.eclass
+++ b/eclass/eapi7-ver.eclass
@@ -34,12 +34,17 @@ _version_parse_range() {
[[ ${start} -gt 0 ]] && [[ -z ${end} || ${start} -le ${end} ]] || die
}
+# RETURNS:
+# comp=( s0 c1 s1 c2 s2... )
+# where s - separator, c - component
_version_split() {
local v=$1 LC_ALL=C
+ comp=("")
+
# get first component
[[ ${v} =~ ^([A-Za-z]*|[0-9]*) ]] || die
- comp=("${BASH_REMATCH[1]}")
+ comp+=("${BASH_REMATCH[1]}")
v=${v:${#BASH_REMATCH[0]}}
# get remaining separators and components
@@ -59,9 +64,9 @@ version_cut() {
local IFS=
if [[ ${end} ]]; then
- echo "${comp[*]:(start-1)*2:(end-start)*2+1}"
+ echo "${comp[*]:(start-1)*2+1:(end-start)*2+1}"
else
- echo "${comp[*]:(start-1)*2}"
+ echo "${comp[*]:(start-1)*2+1}"
fi
}
@@ -74,7 +79,7 @@ version_rs() {
while [[ $# -ge 2 ]]; do
_version_parse_range "$1"
[[ ${end} && ${end} -le $((${#comp[@]}/2)) ]] ||
end=$((${#comp[@]}/2))
- for (( i = start*2 - 1; i < end*2; i+=2 )); do
+ for (( i = start*2; i <= end*2; i+=2 )); do
comp[i]=$2
done
shift 2