summaryrefslogtreecommitdiff
path: root/apt-pkg/packageset.h
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2010-05-31 00:28:14 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2010-05-31 00:28:14 +0200
commit78c325968642255fd2325003f19729b617477666 (patch)
tree15377eeef85975ae51216bb21be26cdda41dda10 /apt-pkg/packageset.h
parentffee1c2bed4accfe25b2ac9e9f0ab9a0ebae9b5b (diff)
move cmdline parsing from apt-cache to new FromCommandLine method
Diffstat (limited to 'apt-pkg/packageset.h')
-rw-r--r--apt-pkg/packageset.h53
1 files changed, 35 insertions, 18 deletions
diff --git a/apt-pkg/packageset.h b/apt-pkg/packageset.h
index cd1430a2a..0bd60c56b 100644
--- a/apt-pkg/packageset.h
+++ b/apt-pkg/packageset.h
@@ -28,27 +28,29 @@ public: /*{{{*/
operator pkgCache::PkgIterator(void) { return **this; }
- inline const char *Name() const {return (*this)->Name(); }
- inline std::string FullName(bool const &Pretty) const { return (*this)->FullName(Pretty); }
- inline std::string FullName() const { return (*this)->FullName(); }
- inline const char *Section() const {return (*this)->Section(); }
- inline bool Purge() const {return (*this)->Purge(); }
- inline const char *Arch() const {return (*this)->Arch(); }
- inline pkgCache::GrpIterator Group() const { return (*this)->Group(); }
- inline pkgCache::VerIterator VersionList() const { return (*this)->VersionList(); }
- inline pkgCache::VerIterator CurrentVer() const { return (*this)->CurrentVer(); }
- inline pkgCache::DepIterator RevDependsList() const { return (*this)->RevDependsList(); }
- inline pkgCache::PrvIterator ProvidesList() const { return (*this)->ProvidesList(); }
- inline pkgCache::PkgIterator::OkState State() const { return (*this)->State(); }
- inline const char *CandVersion() const { return (*this)->CandVersion(); }
- inline const char *CurVersion() const { return (*this)->CurVersion(); }
- inline pkgCache *Cache() const { return (*this)->Cache(); };
- inline unsigned long Index() const {return (*this)->Index();};
+ inline const char *Name() const {return (**this).Name(); }
+ inline std::string FullName(bool const &Pretty) const { return (**this).FullName(Pretty); }
+ inline std::string FullName() const { return (**this).FullName(); }
+ inline const char *Section() const {return (**this).Section(); }
+ inline bool Purge() const {return (**this).Purge(); }
+ inline const char *Arch() const {return (**this).Arch(); }
+ inline pkgCache::GrpIterator Group() const { return (**this).Group(); }
+ inline pkgCache::VerIterator VersionList() const { return (**this).VersionList(); }
+ inline pkgCache::VerIterator CurrentVer() const { return (**this).CurrentVer(); }
+ inline pkgCache::DepIterator RevDependsList() const { return (**this).RevDependsList(); }
+ inline pkgCache::PrvIterator ProvidesList() const { return (**this).ProvidesList(); }
+ inline pkgCache::PkgIterator::OkState State() const { return (**this).State(); }
+ inline const char *CandVersion() const { return (**this).CandVersion(); }
+ inline const char *CurVersion() const { return (**this).CurVersion(); }
+ inline pkgCache *Cache() const { return (**this).Cache(); };
+ inline unsigned long Index() const {return (**this).Index();};
+ // we have only valid iterators here
+ inline bool end() const { return false; };
friend std::ostream& operator<<(std::ostream& out, const_iterator i) { return operator<<(out, (*i)); }
- inline pkgCache::PkgIterator const * operator->() const {
- return &**this;
+ inline pkgCache::Package const * operator->() const {
+ return &***this;
};
};
// 103. set::iterator is required to be modifiable, but this allows modification of keys
@@ -68,6 +70,21 @@ public: /*{{{*/
return APT::PackageSet::FromRegEx(Cache, pattern, out);
}
+ /** \brief returns all packages specified on the commandline
+
+ Get all package names from the commandline and executes regex's if needed.
+ No special package command is supported, just plain names.
+ \param Cache the packages are in
+ \param cmdline Command line the package names should be extracted from
+ \param out stream to print various notices to */
+ static APT::PackageSet FromCommandLine(pkgCache &Cache, const char **cmdline, std::ostream &out);
+ static APT::PackageSet FromCommandLine(pkgCache &Cache, const char **cmdline) {
+ std::ostream out (std::ofstream("/dev/null").rdbuf());
+ return APT::PackageSet::FromCommandLine(Cache, cmdline, out);
+ }
+
+
+
/*}}}*/
};
/*}}}*/