eapi7-ver.eclass: Support EAPIs 0 to 6.
authorUlrich Müller <ulm@gentoo.org>
Tue, 8 May 2018 19:08:48 +0000 (21:08 +0200)
committerUlrich Müller <ulm@gentoo.org>
Sun, 13 May 2018 22:39:26 +0000 (00:39 +0200)
eclass/eapi7-ver.eclass

index 6117124a90a5bfd0edcdb5e5b97a0c6a761ee950..ab512bd24e47bfdccbc6084dc27ad214b22ff7c0 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: eapi7-ver.eclass
 # the version string, it is truncated silently.
 
 case ${EAPI:-0} in
-       0|1|2|3|4|5)
-               die "${ECLASS}: EAPI=${EAPI:-0} not supported";;
-       6)
-               ;;
-       *)
-               die "${ECLASS}: EAPI=${EAPI} includes all functions from this eclass";;
+       0|1|2|3|4|5|6) ;;
+       7) die "${ECLASS}: EAPI=${EAPI} includes all functions from this eclass" ;;
+       *) die "${ECLASS}: EAPI=${EAPI} unknown" ;;
 esac
 
 # @FUNCTION: _ver_parse_range
@@ -135,11 +132,12 @@ ver_cut() {
        local max=$((${#comp[@]}/2))
        _ver_parse_range "${range}" "${max}"
 
-       local IFS=
        if [[ ${start} -gt 0 ]]; then
                start=$(( start*2 - 1 ))
        fi
-       echo "${comp[*]:start:end*2-start}"
+       # Work around a bug in bash-3.2, where "${comp[*]:start:end*2-start}"
+       # inserts stray 0x7f characters for empty array elements
+       printf "%s" "${comp[@]:start:end*2-start}" $'\n'
 }
 
 # @FUNCTION: ver_rs