From 73c2c61beb6b2fb4a7685f04d2b0e17d5a934504 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 16:53:45 +0000 Subject: Fixed apt-get source, dpkg/dpkg-hurd case Author: jgg Date: 1999-05-20 05:53:38 GMT Fixed apt-get source, dpkg/dpkg-hurd case --- cmdline/apt-get.cc | 13 +++++++++++-- debian/changelog | 1 + 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 Wed, 12 May 1999 09:18:49 -0700 -- cgit v1.2.3