Filter SEARCH_DIRS_MASK paths from SEARCH_DIRS. (Bug 194993)
authorfuzzyray <fuzzyray@gentoo.org>
Sat, 16 Feb 2008 20:51:01 +0000 (20:51 -0000)
committerfuzzyray <fuzzyray@gentoo.org>
Sat, 16 Feb 2008 20:51:01 +0000 (20:51 -0000)
svn path=/; revision=461

trunk/src/revdep-rebuild/revdep-rebuild

index 70c493154ea296ecd88a7b4c2546e6910b0c8191..f7a6a00e0a1b46d659ca4e9c6d1fe1dd7b3ee224 100755 (executable)
@@ -348,10 +348,22 @@ if [[ -r /etc/ld.so.conf && -s /etc/ld.so.conf ]]; then
 fi
 
 # Set the final variables
-[[ $SEARCH_DIRS ]] || die 1 "No search defined -- this is a bug."
 SEARCH_DIRS=$(clean_var <<< "$SEARCH_DIRS")
 SEARCH_DIRS_MASK=$(clean_var <<< "$SEARCH_DIRS_MASK")
 LD_LIBRARY_MASK=$(clean_var <<< "$LD_LIBRARY_MASK")
+# Filter masked paths from SEARCH_DIRS
+filter_SEARCH_DIRS=
+for sdir in ${SEARCH_DIRS} ; do
+       unset skip_me
+       for mdir in ${SEARCH_DIRS_MASK} ; do
+               [[ ${sdir} == ${mdir}/* ]] \
+                       && skip_me=1 && break
+       done
+       [[ -n ${skip_me} ]] || filter_SEARCH_DIRS+=" ${sdir}"
+done
+SEARCH_DIRS=$(clean_var "${filter_SEARCH_DIRS}")
+unset sdir mdir skip_me filter_SEARCH_DIRS
+[[ $SEARCH_DIRS ]] || die 1 "No search defined -- this is a bug."
 
 set_trap() {
        trap "rm_temp $1" SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM