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 |