if (End->Type != pkgCache::Dep::PreDepends &&
End->Type != pkgCache::Dep::Depends &&
End->Type != pkgCache::Dep::Suggests &&
- End->Type != pkgCache::Dep::Recommends)
+ End->Type != pkgCache::Dep::Recommends)
continue;
// Important deps only
if (Important == true)
if (End->Type != pkgCache::Dep::PreDepends &&
- End->Type != pkgCache::Dep::Depends)
+ End->Type != pkgCache::Dep::Depends)
continue;
// Verify the or group
bool Stats(CommandLine &Cmd)
{
pkgCache &Cache = *GCache;
- cout << _("Total package names : ") << Cache.Head().PackageCount << " (" <<
+ cout << _("Total package names: ") << Cache.Head().PackageCount << " (" <<
SizeToStr(Cache.Head().PackageCount*Cache.Head().PackageSz) << ')' << endl;
int Normal = 0;
cout << _("Total distinct versions: ") << Cache.Head().VersionCount << " (" <<
SizeToStr(Cache.Head().VersionCount*Cache.Head().VersionSz) << ')' << endl;
- cout << _("Total Distinct Descriptions: ") << Cache.Head().DescriptionCount << " (" <<
+ cout << _("Total distinct descriptions: ") << Cache.Head().DescriptionCount << " (" <<
SizeToStr(Cache.Head().DescriptionCount*Cache.Head().DescriptionSz) << ')' << endl;
cout << _("Total dependencies: ") << Cache.Head().DependsCount << " (" <<
SizeToStr(Cache.Head().DependsCount*Cache.Head().DependencySz) << ')' << endl;
pkgCache &Cache = *GCache;
pkgPolicy Plcy(&Cache);
- if (ReadPinFile(Plcy) == false)
+ if (ReadPinFile(Plcy) == false || ReadPinDir(Plcy) == false)
return false;
unsigned long Count = Cache.HeaderP->PackageCount+1;
bool Recurse = _config->FindB("APT::Cache::RecurseDepends",false);
bool Installed = _config->FindB("APT::Cache::Installed",false);
+ bool Important = _config->FindB("APT::Cache::Important",false);
bool DidSomething;
do
{
for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++)
{
-
+ // Important deps only
+ if (Important == true)
+ if (D->Type != pkgCache::Dep::PreDepends &&
+ D->Type != pkgCache::Dep::Depends)
+ continue;
+
pkgCache::PkgIterator Trg = D.TargetPkg();
if((Installed && Trg->CurrentVer != 0) || !Installed)
return true;
}
-
+ /*}}}*/
// RDepends - Print out a reverse dependency tree - mbc /*{{{*/
// ---------------------------------------------------------------------
/* */
return true;
}
-
/*}}}*/
-
-
// xvcg - Generate a graph for xvcg /*{{{*/
// ---------------------------------------------------------------------
// Code contributed from Junichi Uekawa <dancer@debian.org> on 20 June 2002.
then show the relation but do not recurse */
if (Hit == false &&
(D->Type == pkgCache::Dep::Conflicts ||
+ D->Type == pkgCache::Dep::DpkgBreaks ||
D->Type == pkgCache::Dep::Obsoletes))
{
if (Show[D.TargetPkg()->ID] == None &&
case pkgCache::Dep::Conflicts:
printf("label: \"conflicts\" color: lightgreen }\n");
break;
+ case pkgCache::Dep::DpkgBreaks:
+ printf("label: \"breaks\" color: lightgreen }\n");
+ break;
case pkgCache::Dep::Obsoletes:
printf("label: \"obsoletes\" color: lightgreen }\n");
break;
Shapes[ShapeMap[Pkg->ID]]);
}
-
+
+ delete[] Show;
+ delete[] Flags;
+ delete[] ShapeMap;
+
printf("}\n");
return true;
}
/*}}}*/
-
-
// Dotty - Generate a graph for Dotty /*{{{*/
// ---------------------------------------------------------------------
/* Dotty is the graphvis program for generating graphs. It is a fairly
const unsigned char *DescP = (unsigned char*)strstr((char*)Buffer, "Description:");
// Write all but Description
- if (fwrite(Buffer,1,DescP - Buffer-1,stdout) < (size_t)(DescP - Buffer-1))
+ if (fwrite(Buffer,1,DescP - Buffer,stdout) < (size_t)(DescP - Buffer))
{
delete [] Buffer;
return false;
// Show the right description
pkgRecords Recs(*GCache);
- pkgCache::DescIterator DescDefault = V.DescriptionList();
- pkgCache::DescIterator Desc = DescDefault;
- for (; Desc.end() == false; Desc++)
- if (pkgIndexFile::LanguageCode() == Desc.LanguageCode())
- break;
- if (Desc.end() == true) Desc = DescDefault;
-
+ pkgCache::DescIterator Desc = V.TranslatedDescription();
pkgRecords::Parser &P = Recs.Lookup(Desc.FileList());
cout << "Description" << ( (strcmp(Desc.LanguageCode(),"") != 0) ? "-" : "" ) << Desc.LanguageCode() << ": " << P.LongDesc();
return true;
}
/*}}}*/
-// Search - Perform a search /*{{{*/
-// ---------------------------------------------------------------------
-/* This searches the package names and pacakge descriptions for a pattern */
+
struct ExDescFile
{
pkgCache::DescFile *Df;
bool NameMatch;
};
+// Search - Perform a search /*{{{*/
+// ---------------------------------------------------------------------
+/* This searches the package names and package descriptions for a pattern */
bool Search(CommandLine &CmdL)
{
pkgCache &Cache = *GCache;
pkgCache &Cache = *GCache;
pkgPolicy Plcy(&Cache);
- if (ReadPinFile(Plcy) == false)
+ if (ReadPinFile(Plcy) == false || ReadPinDir(Plcy) == false)
return false;
// Print out all of the package files
if (SrcList->FindIndex(F,Indx) == false &&
_system->FindIndex(F,Indx) == false)
return _error->Error(_("Cache is out of sync, can't x-ref a package file"));
- printf(_("%4i %s\n"),
+
+ printf("%4i %s\n",
Plcy.GetPriority(F),Indx->Describe(true).c_str());
// Print the reference information for the package
pkgCache &Cache = *GCache;
- // Create the text record parsers
+ // Create the src text record parsers and ignore errors about missing
+ // deb-src lines that are generated from pkgSrcRecords::pkgSrcRecords
pkgSrcRecords SrcRecs(*SrcList);
if (_error->PendingError() == true)
- return false;
+ _error->Discard();
for (const char **I = CmdL.FileList + 1; *I != 0; I++)
{
return true;
}
-
/*}}}*/
// GenCaches - Call the main cache generator /*{{{*/
// ---------------------------------------------------------------------
/* */
bool ShowHelp(CommandLine &Cmd)
{
- ioprintf(cout,_("%s %s for %s %s compiled on %s %s\n"),PACKAGE,VERSION,
- COMMON_OS,COMMON_CPU,__DATE__,__TIME__);
+ ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION,
+ COMMON_ARCH,__DATE__,__TIME__);
if (_config->FindB("version") == true)
return true;
" show - Show a readable record for the package\n"
" depends - Show raw dependency information for a package\n"
" rdepends - Show reverse dependency information for a package\n"
- " pkgnames - List the names of all packages\n"
- " dotty - Generate package graphs for GraphVis\n"
+ " pkgnames - List the names of all packages in the system\n"
+ " dotty - Generate package graphs for GraphViz\n"
" xvcg - Generate package graphs for xvcg\n"
" policy - Show policy settings\n"
"\n"
_config->Set("help",false);
}
/*}}}*/
-
-int main(int argc,const char *argv[])
+int main(int argc,const char *argv[]) /*{{{*/
{
CommandLine::Args Args[] = {
{'h',"help","help",0},
return 0;
}
+ /*}}}*/