--- synaptic-0.36.1/common/rpackage.cc.candver 2003-05-02 17:57:24.000000000 +0300 +++ synaptic-0.36.1/common/rpackage.cc 2003-05-02 18:17:44.000000000 +0300 @@ -84,7 +84,10 @@ const char *RPackage::section() { - const char *s = _package->Section(); + pkgDepCache::StateCache &State = (*_depcache)[*_package]; + if (State.CandidateVer == 0) + return ""; + const char *s = State.CandidateVerIter(*_depcache).Section(); if(s!=NULL) return s; else @@ -94,26 +97,25 @@ const char *RPackage::summary() { - pkgCache::VerIterator ver = _package->VersionList(); - - if (!ver.end()) { + pkgDepCache::StateCache &State = (*_depcache)[*_package]; + if (State.CandidateVer == 0) + return ""; + + pkgCache::VerIterator ver = State.CandidateVerIter(*_depcache); pkgRecords::Parser &parser = _records->Lookup(ver.FileList()); - return parser.ShortDesc().c_str(); - } - return ""; } const char *RPackage::maintainer() { - pkgCache::VerIterator ver = _package->VersionList(); - - if (!ver.end()) { + pkgDepCache::StateCache &State = (*_depcache)[*_package]; + if (State.CandidateVer == 0) + return ""; + + pkgCache::VerIterator ver = State.CandidateVerIter(*_depcache); pkgRecords::Parser &parser = _records->Lookup(ver.FileList()); return parser.Maintainer().c_str(); - } - return ""; } @@ -139,12 +141,12 @@ const char *RPackage::priority() { - pkgCache::VerIterator ver = _package->VersionList(); - - if (ver != 0) + pkgDepCache::StateCache &State = (*_depcache)[*_package]; + if (State.CandidateVer == 0) + return NULL; + + pkgCache::VerIterator ver = State.CandidateVerIter(*_depcache); return ver.PriorityType(); - else - return NULL; } @@ -245,15 +247,13 @@ const char *RPackage::description() { - pkgCache::VerIterator ver = _package->VersionList(); - - if (!ver.end()) { - pkgRecords::Parser &parser = _records->Lookup(ver.FileList()); + pkgDepCache::StateCache &State = (*_depcache)[*_package]; + if (State.CandidateVer == 0); + return ""; + pkgCache::VerIterator ver = State.CandidateVerIter(*_depcache); + pkgRecords::Parser &parser = _records->Lookup(ver.FileList()); return parseDescription(parser.LongDesc()); - } else { - return ""; - } } long RPackage::installedSize() --- synaptic-0.36.1/common/rpackagelister.cc.candver 2003-05-02 18:11:36.000000000 +0300 +++ synaptic-0.36.1/common/rpackagelister.cc 2003-05-02 18:11:54.000000000 +0300 @@ -409,8 +409,10 @@ } // gather list of sections - if (I.Section()) { - sectionSet.insert(I.Section()); + // use the section of candidate version + pkgCache::VerIterator V = (*deps)[I].CandidateVerIter(*deps); + if (V.Section()) { + sectionSet.insert(V.Section()); } else { cerr << _("Package ") << I.Name() << _(" has no section?!") << endl; }