diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2005-10-21 19:51:41 +0000 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2005-10-21 19:51:41 +0000 |
commit | 012b102ad1baf9f24601cbec6365fe43aad2d521 (patch) | |
tree | 20bce32919f20aa7535cdded2ca70bc88b9ab212 | |
parent | 487d7faaa8d789507b901cead8d7803c98af2bd3 (diff) |
* ABI/API change: add "VerIterator::TranslatedDescription()" method to make the life of the api user easier
-rw-r--r-- | apt-pkg/cacheiterators.h | 1 | ||||
-rw-r--r-- | apt-pkg/pkgcache.cc | 19 | ||||
-rw-r--r-- | cmdline/apt-cache.cc | 8 |
3 files changed, 21 insertions, 7 deletions
diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index f0aafb52d..64fa4636e 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -129,6 +129,7 @@ class pkgCache::VerIterator inline const char *Arch() const {return Ver->Arch == 0?0:Owner->StrP + Ver->Arch;}; inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + Ver->ParentPkg);}; inline DescIterator DescriptionList() const; + DescIterator TranslatedDescription() const; inline DepIterator DependsList() const; inline PrvIterator ProvidesList() const; inline VerFileIterator FileList() const; diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index f76afb935..4452079a2 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -26,6 +26,7 @@ #endif #include <apt-pkg/pkgcache.h> +#include <apt-pkg/indexfile.h> #include <apt-pkg/version.h> #include <apt-pkg/error.h> #include <apt-pkg/strutl.h> @@ -43,6 +44,7 @@ using std::string; + // Cache::Header::Header - Constructor /*{{{*/ // --------------------------------------------------------------------- /* Simply initialize the header */ @@ -608,3 +610,20 @@ string pkgCache::PkgFileIterator::RelStr() return Res; } /*}}}*/ +// VerIterator::TranslatedDescription - Return the a DescIter for locale/*{{{*/ +// --------------------------------------------------------------------- +/* return a DescIter for the current locale or the default if none is + * found + */ +pkgCache::DescIterator pkgCache::VerIterator::TranslatedDescription() const +{ + pkgCache::DescIterator DescDefault = DescriptionList(); + pkgCache::DescIterator Desc = DescDefault; + for (; Desc.end() == false; Desc++) + if (pkgIndexFile::LanguageCode() == Desc.LanguageCode()) + break; + if (Desc.end() == true) Desc = DescDefault; + return Desc; +}; + + /*}}}*/ diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 810dbe7b0..cb1aeb514 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -1237,13 +1237,7 @@ bool DisplayRecord(pkgCache::VerIterator V) // 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(); |