From a5134fe7285bc31f4e9235678a31e2ed5efd8f2c Mon Sep 17 00:00:00 2001
From: Chris Lamb <chris@chris-lamb.co.uk>
Date: Mon, 28 Apr 2008 17:05:30 +0100
Subject: Allow needle and haystack parts of packagelist #if constructs to be
 lists

This allows us to write:

 #if SECTIONS contrib non-free
 contrib-package
 non-free-package
 #endif

and

 #if DISTRIBUTION lenny sid
 new-package
 #endif
---
 functions/packageslists.sh | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/functions/packageslists.sh b/functions/packageslists.sh
index 733e8f2..023b984 100755
--- a/functions/packageslists.sh
+++ b/functions/packageslists.sh
@@ -46,16 +46,22 @@ Expand_packagelist ()
 						echo "E: Nesting conditionals is not supported" >&2
 						exit 1
 					fi
-
 					_LH_NESTED=1
-					_LH_VAR="$(echo "${_LH_LINE}" | cut -d' ' -f2)"
-					_LH_VAL="$(echo "${_LH_LINE}" | cut -d' ' -f3-)"
-					_LH_MATCH="$(echo ${_LH_VAL} |grep "\(^\| \)$(eval "echo \$LH_${_LH_VAR}")\($\| \)")" || true
 
-					if [ -n "${_LH_VAR}" ] &&  [ -z "${_LH_MATCH}" ]
-					then
-						_LH_ENABLED=0
-					fi
+					_LH_NEEDLE="$(echo "${_LH_LINE}" | cut -d' ' -f3-)"
+					_LH_HAYSTACK="$(eval "echo \$LH_$(echo "${_LH_LINE}" | cut -d' ' -f2)")"
+
+					_LH_ENABLED=0
+					for _LH_NEEDLE_PART in ${_LH_NEEDLE}
+					do
+						for _LH_HAYSTACK_PART in ${_LH_HAYSTACK}
+						do
+							if [ "${_LH_NEEDLE_PART}" = "${_LH_HAYSTACK_PART}" ]
+							then
+								_LH_ENABLED=1
+							fi
+						done
+					done
 					;;
 
 				\#endif*)
-- 
cgit v1.0