As suggested by mgorny, we could use bash internals instead of the "has" function calls in global scope.
The patch below replaces them by case statements. (Unfortunately we cannot use fall-through (&;) because it is a bash 4 feature.) Ulrich From 89e837f5179354aa3dfa454f51282ad9d1143402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulrich=20M=C3=BCller?= <[email protected]> Date: Sun, 29 Nov 2015 17:33:08 +0100 Subject: [PATCH] eutils.eclass: In EAPI conditionals, replace "has" by case statements. --- eclass/eutils.eclass | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/eclass/eutils.eclass b/eclass/eutils.eclass index 5c7d1aa..1163051 100644 --- a/eclass/eutils.eclass +++ b/eclass/eutils.eclass @@ -1614,7 +1614,8 @@ check_license() { die "you no longer need this as portage supports ACCEPT_LICENSE itself" } -if has "${EAPI:-0}" 0 1 2; then +case ${EAPI:-0} in +0|1|2) # @FUNCTION: epause # @USAGE: [seconds] @@ -1646,7 +1647,8 @@ ebeep() { fi } -else +;; +*) ebeep() { ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at https://bugs.gentoo.org" @@ -1656,9 +1658,11 @@ epause() { ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at https://bugs.gentoo.org" } -fi +;; +esac -if has "${EAPI:-0}" 0 1 2 3 4; then +case ${EAPI:-0} in +0|1|2|3|4) # @FUNCTION: usex # @USAGE: <USE flag> [true output] [false output] [true suffix] [false suffix] @@ -1669,9 +1673,11 @@ if has "${EAPI:-0}" 0 1 2 3 4; then # otherwise echo [false output][false suffix] (defaults to "no"). usex() { use "$1" && echo "${2-yes}$4" || echo "${3-no}$5" ; } #382963 -fi +;; +esac -if has "${EAPI:-0}" 0 1 2 3 4 5; then +case ${EAPI:-0} in +0|1|2|3|4|5) # @VARIABLE: EPATCH_USER_SOURCE # @DESCRIPTION: @@ -1821,4 +1827,5 @@ in_iuse() { has "${flag}" "${liuse[@]#[+-]}" } -fi +;; +esac -- 2.6.3
pgpfqyQFpjtKX.pgp
Description: PGP signature
