summaryrefslogtreecommitdiff
path: root/usr.sbin/pkg_add/OpenBSD/PackageLocator.pm
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/pkg_add/OpenBSD/PackageLocator.pm')
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PackageLocator.pm12
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) {