diff options
Diffstat (limited to 'usr.sbin/pkg_add/OpenBSD/PackageLocator.pm')
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PackageLocator.pm | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/PackageLocator.pm b/usr.sbin/pkg_add/OpenBSD/PackageLocator.pm index 0c9b3e2b850..d2ab5feaec7 100644 --- a/usr.sbin/pkg_add/OpenBSD/PackageLocator.pm +++ b/usr.sbin/pkg_add/OpenBSD/PackageLocator.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: PackageLocator.pm,v 1.78 2010/01/09 09:45:40 espie Exp $ +# $OpenBSD: PackageLocator.pm,v 1.79 2010/01/09 10:45:32 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -45,11 +45,13 @@ if (defined $ENV{PKG_PATH}) { sub path_parse { - use File::Basename; use OpenBSD::Paths; my $pkg_db = $ENV{"PKG_DBDIR"} || OpenBSD::Paths->pkgdb; - my ($pkgname, $path) = fileparse(shift); + my ($pkgname, $path) = (shift, './'); + if ($pkgname =~ m/^(.*[\/\:])(.*)/) { + ($pkgname, $path) = ($2, $1); + } my $repo; if ($path eq $pkg_db.'/') { @@ -69,7 +71,7 @@ sub find return $packages{$_}; } my $package; - if (m/\//o) { + if (m/[\/\:]/o) { my ($repository, undef, $pkgname) = path_parse($_); $package = $repository->find($pkgname, $arch); if (defined $package) { @@ -87,7 +89,7 @@ sub grabPlist my ($class, $_, $arch, $code) = @_; my $plist; - if (m/\//o) { + if (m/[\/\:]/o) { my ($repository, undef, $pkgname) = path_parse($_); $plist = $repository->grabPlist($pkgname, $arch, $code); if (defined $plist) { |