summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmdline/apt-get.cc13
-rw-r--r--debian/changelog1
2 files changed, 12 insertions, 2 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index f15766565..ea56e4c22 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: apt-get.cc,v 1.58 1999/05/13 03:09:33 jgg Exp $
+// $Id: apt-get.cc,v 1.59 1999/05/20 05:53:38 jgg Exp $
/* ######################################################################
apt-get - Cover for dpkg
@@ -1112,6 +1112,7 @@ bool DoSource(CommandLine &CmdL)
pkgSrcRecords::Parser *Last = 0;
unsigned long Offset = 0;
string Version;
+ bool IsMatch = false;
// Iterate over all of the hits
pkgSrcRecords::Parser *Parse;
@@ -1119,8 +1120,16 @@ bool DoSource(CommandLine &CmdL)
while ((Parse = SrcRecs.Find(Src.c_str(),false)) != 0)
{
string Ver = Parse->Version();
- if (Last == 0 || pkgVersionCompare(Version,Ver) < 0)
+
+ // Skip name mismatches
+ if (IsMatch == true && Parse->Package() != Src)
+ continue;
+
+ // Newer version or an exact match
+ if (Last == 0 || pkgVersionCompare(Version,Ver) < 0 ||
+ (Parse->Package() == Src && IsMatch == false))
{
+ IsMatch = Parse->Package() == Src;
Last = Parse;
Offset = Parse->Offset();
Version = Ver;
diff --git a/debian/changelog b/debian/changelog
index 69014fa2b..ffdb1a2a7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,7 @@ apt (0.3.6.1) unstable; urgency=low
Closes: #37499
* Man page typo Closes: #37762
* Fixed parsing of the Source: line. Closes: #37679
+ * Dpkg/dpkg-hurd source bug. Closes: #38004
-- Jason Gunthorpe <jgg@debian.org> Wed, 12 May 1999 09:18:49 -0700