Fix two issues with directory searches on Windows

First, make sure we actually match /c/windows from the beginning, not
if it occurs in the middle of the path.

Second, make sure that directories containing the binaries are
searched first. Do that by using unshift (prepend) instead of push
(append).

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Thiago Macieira 2013-10-11 20:39:56 -07:00 committed by Dirk Hohndel
parent 58b668c714
commit 6026fef35e

View file

@ -3,7 +3,7 @@ use strict;
my %deploy;
my $objdump = $ENV{objdump} ? $ENV{objdump} : "objdump";
my @searchdirs;
my @systemdirs = (qr|^c:/windows|i, qr|^c:/winnt|i, qr|/c/windows|i, qr|/c/winnt|);
my @systemdirs = (qr|^c:/windows|i, qr|^c:/winnt|i, qr|^/c/windows|i, qr|^/c/winnt|);
sub addDependenciesFor($) {
open OBJDUMP, "-|", $objdump, "-p", $_[0] or die;
@ -50,7 +50,7 @@ for (@ARGV) {
# Add $_'s path to the search list too
my $dirname = $_;
$dirname =~ s,/[^/]+$,,;
push @searchdirs, $dirname;
unshift @searchdirs, $dirname;
$deploy{$_} = $_;
addDependenciesFor($_);