public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Ulrich Mueller <ulm@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: [gentoo-dev] [PATCH] eutils.eclass: In EAPI conditionals, replace "has" by case statements.
Date: Sun, 29 Nov 2015 17:48:47 +0100	[thread overview]
Message-ID: <22107.11375.846871.672757@a1i15.kph.uni-mainz.de> (raw)
In-Reply-To: <22106.64938.215501.17191@a1i15.kph.uni-mainz.de>

[-- Attachment #1: Type: text/plain, Size: 1992 bytes --]

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?= <ulm@gentoo.org>
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

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

  parent reply	other threads:[~2015-11-29 16:48 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-29 13:29 [gentoo-dev] eutils.eclass: further cleanup for EAPI 6 Ulrich Mueller
2015-11-29 13:29 ` [gentoo-dev] [PATCH 1/2] eutils.eclass: Disable epatch_user in " Ulrich Müller
2015-11-29 13:31 ` [gentoo-dev] [PATCH 2/2] eutils.eclass: Move all deprecated functions to the end Ulrich Müller
2015-11-29 16:48 ` Ulrich Mueller [this message]
2015-11-29 23:29   ` [gentoo-dev] [PATCH] eutils.eclass: In EAPI conditionals, replace "has" by case statements Davide Pesavento
2015-11-30  6:52     ` Ulrich Mueller
2015-11-30  9:47       ` Michał Górny
2015-11-30 17:33       ` Davide Pesavento
2015-12-01 13:50       ` [gentoo-dev] " Duncan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=22107.11375.846871.672757@a1i15.kph.uni-mainz.de \
    --to=ulm@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox