Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:eapi7-ver commit in: eclass/, eclass/tests/
Date: Wed, 06 Sep 2017 13:40:52
Message-Id: 1504705202.f62b22d9ca2dc996de193b1e998af34f276b316b.mgorny@gentoo
1 commit: f62b22d9ca2dc996de193b1e998af34f276b316b
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Wed Sep 6 13:40:02 2017 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Wed Sep 6 13:40:02 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f62b22d9
7
8 eapi7-ver.eclass: Support using 0th version sep
9
10 eclass/eapi7-ver.eclass | 15 +++++++++++----
11 eclass/tests/eapi7-ver.sh | 3 ++-
12 2 files changed, 13 insertions(+), 5 deletions(-)
13
14 diff --git a/eclass/eapi7-ver.eclass b/eclass/eapi7-ver.eclass
15 index e2458deeb7b..70a1b3e9847 100644
16 --- a/eclass/eapi7-ver.eclass
17 +++ b/eclass/eapi7-ver.eclass
18 @@ -31,7 +31,7 @@ _version_parse_range() {
19 [[ $1 =~ ^([0-9]+)(-([0-9]*))?$ ]] || die
20 start=${BASH_REMATCH[1]}
21 [[ ${BASH_REMATCH[2]} ]] && end=${BASH_REMATCH[3]} || end=${start}
22 - [[ ${start} -gt 0 ]] && [[ -z ${end} || ${start} -le ${end} ]] || die
23 + [[ ${start} -ge 0 ]] && [[ -z ${end} || ${start} -le ${end} ]] || die
24 }
25
26 # RETURNS:
27 @@ -51,17 +51,24 @@ _version_split() {
28 }
29
30 version_cut() {
31 - local start end
32 + local start end istart iend
33 local -a comp
34
35 _version_parse_range "$1"
36 _version_split "${2-${PV}}"
37
38 local IFS=
39 + if [[ ${start} -gt 0 ]]; then
40 + istart=$(( (start-1)*2 + 1 ))
41 + iend=$(( (end-start)*2 + 1 ))
42 + else
43 + istart=0
44 + iend=$(( (end-start)*2 ))
45 + fi
46 if [[ ${end} ]]; then
47 - echo "${comp[*]:(start-1)*2+1:(end-start)*2+1}"
48 + echo "${comp[*]:istart:iend}"
49 else
50 - echo "${comp[*]:(start-1)*2+1}"
51 + echo "${comp[*]:istart}"
52 fi
53 }
54
55
56 diff --git a/eclass/tests/eapi7-ver.sh b/eclass/tests/eapi7-ver.sh
57 index 0f3a1f37e86..2bac732018b 100755
58 --- a/eclass/tests/eapi7-ver.sh
59 +++ b/eclass/tests/eapi7-ver.sh
60 @@ -30,13 +30,14 @@ teq 1.2.3 version_cut 1- 1.2.3
61 teq 3b version_cut 3-4 1.2.3b_alpha4
62 teq alpha version_cut 5 1.2.3b_alpha4
63 teq 1.2 version_cut 1-2 .1.2.3
64 -#teq .1.2 version_cut 0-2 .1.2.3
65 +teq .1.2 version_cut 0-2 .1.2.3
66 teq 2.3 version_cut 2-3 1.2.3.
67 teq 2.3. version_cut 2- 1.2.3.
68
69 teq 1.23-b_alpha4 version_rs 3 - 2 "" 1.2.3b_alpha4
70 teq a1b_2-c-3-d4e5 version_rs 3-5 _ 4-6 - a1b2c3d4e5
71 teq .1-2.3 version_rs 1 - .1.2.3
72 +teq -1.2.3 version_rs 0 - .1.2.3
73
74 txf version_cut foo 1.2.3
75 #txf version_rs 5-3 _ a1b2c3d4e5