Such checks are used at least in autotools-utils & kde* eclasses, and
are done wrong there. Thus, I've created a little reusable snippet
suitable for eutils.
---
 eclass/eutils.eclass |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/eclass/eutils.eclass b/eclass/eutils.eclass
index cd1f9ff..3d99f92 100644
--- a/eclass/eutils.eclass
+++ b/eclass/eutils.eclass
@@ -2028,3 +2028,18 @@ path_exists() {
                -o) return $(( r == $# )) ;;
        esac
 }
+
+# @FUNCTION: has_iuse
+# @USAGE: flag
+# @DESCRIPTION:
+# Determines whether the given flag is in IUSE. Strips IUSE default prefixes
+# as necessary.
+has_iuse() {
+       debug-print-function ${FUNCNAME} "$@"
+       [[ ${#} -eq 1 ]] || die 'Invalid args to has_iuse()'
+
+       local flag=${1}
+       local liuse=( ${IUSE} )
+
+       has "${flag}" "${liuse[@]#[+-]}"
+}
-- 
1.7.6.1


Reply via email to