From 443904d59b569c26e7ced76e0e0c87d702334f7f Mon Sep 17 00:00:00 2001 From: Date: Tue, 6 Nov 2001 22:22:53 +0000 Subject: [PATCH] Avoid parsing the whole tree to find libwine.so. --- tools/winecheck | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tools/winecheck b/tools/winecheck index f964bb3ff14..5be63cded69 100755 --- a/tools/winecheck +++ b/tools/winecheck @@ -217,7 +217,31 @@ sub Check_BaseFiles { $level = $is_ok; my @output = (); Do_Check("for correct .so lib config (please wait)"); - push (@output, `find / -name libwine.so 2>/dev/null`); + + # Build list of library directories. + # First parse ld.so.conf to find system-wide lib directories. + my @dirlist = (); + open (LDCONF, ") { + s/\#.*//; # eliminate comments + chomp; + if (-d $_) { push @dirlist, $_; } + } + close (LDCONF); + # Next parse LD_LIBRARY_PATH to find user-specific lib dirs. + my (@ld_dirs) = split (/:/, $ENV{'LD_LIBRARY_PATH'}); + my ($dir); + foreach $dir (@ld_dirs) { + if (-d $dir) { push @dirlist, $dir; } + } + + # Now check for a libwine.so in each directory + foreach $dir (@dirlist) { + my ($target) = $dir . "/libwine.so"; + if (-f $target) { push @output, $target; } + } + print "DEBUG: found libwine: @output\n"; + if (@output > 1) { $level = $is_suspect;