Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=be282ae301c3659abd0787087ebdf6ba6ca7466b
commit be282ae301c3659abd0787087ebdf6ba6ca7466b Author: Michel Hermier <[email protected]> Date: Sat Jun 7 09:32:37 2014 +0200 libpacman: Make _pacman_pkg_is_valid a Package method. diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp index d47d581..93e88e3 100644 --- a/lib/libpacman/package.cpp +++ b/lib/libpacman/package.cpp @@ -114,47 +114,47 @@ int _pacman_pkg_cmp(const void *p1, const void *p2) return pkg1 == pkg2 ? 0: strcmp(pkg1->name(), pkg2->name()); } -int _pacman_pkg_is_valid(const Package *pkg, const pmtrans_t *trans, const char *pkgfile) +bool Package::is_valid(const pmtrans_t *trans, const char *pkgfile) const { struct utsname name; - if(_pacman_strempty(pkg->m_name)) { + if(_pacman_strempty(m_name)) { _pacman_log(PM_LOG_ERROR, _("missing package name in %s"), pkgfile); goto pkg_error; } - if(_pacman_strempty(pkg->m_version)) { + if(_pacman_strempty(m_version)) { _pacman_log(PM_LOG_ERROR, _("missing package version in %s"), pkgfile); goto pkg_error; } - if(strchr(pkg->m_version, '-') != strrchr(pkg->m_version, '-')) { + if(strchr(m_version, '-') != strrchr(m_version, '-')) { _pacman_log(PM_LOG_ERROR, _("version contains additional hyphens in %s"), pkgfile); goto invalid_name_error; } if (trans != NULL && !(trans->flags & PM_TRANS_FLAG_NOARCH)) { - if(_pacman_strempty(pkg->arch)) { + if(_pacman_strempty(arch)) { _pacman_log(PM_LOG_ERROR, _("missing package architecture in %s"), pkgfile); goto pkg_error; } uname (&name); - if(strncmp(name.machine, pkg->arch, strlen(pkg->arch))) { + if(strncmp(name.machine, arch, strlen(arch))) { _pacman_log(PM_LOG_ERROR, _("wrong package architecture in %s"), pkgfile); goto arch_error; } } - return 0; + return true; invalid_name_error: pm_errno = PM_ERR_PKG_INVALID_NAME; - return -1; + return false; arch_error: pm_errno = PM_ERR_WRONG_ARCH; - return -1; + return false; pkg_error: pm_errno = PM_ERR_PKG_INVALID; - return -1; + return false; } /* Test for existence of a package in a pmlist_t* diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h index 0ec3e28..cc54271 100644 --- a/lib/libpacman/package.h +++ b/lib/libpacman/package.h @@ -102,6 +102,8 @@ protected: public: libpacman::Database *database() const; + virtual bool is_valid(const pmtrans_t *trans, const char *pkgfile) const; + virtual int read(unsigned int flags); virtual int write(unsigned int flags); /* Optional */ virtual int remove(); /* Optional */ @@ -165,7 +167,6 @@ public: int _pacman_pkg_delete(libpacman::Package *self); int _pacman_pkg_cmp(const void *p1, const void *p2); -int _pacman_pkg_is_valid(const libpacman::Package *pkg, const pmtrans_t *trans, const char *pkgfile); libpacman::Package *_pacman_pkg_isin(const char *needle, pmlist_t *haystack); int _pacman_packagestrmatcher_init(FMatcher *matcher, const FStrMatcher *strmatcher, int flags); diff --git a/lib/libpacman/package/fpmpackage.cpp b/lib/libpacman/package/fpmpackage.cpp index 38ee47a..4a1c85e 100644 --- a/lib/libpacman/package/fpmpackage.cpp +++ b/lib/libpacman/package/fpmpackage.cpp @@ -191,7 +191,7 @@ Package *_pacman_fpmpackage_load(const char *pkgfile) goto error; } fclose(pkginfo); - if(_pacman_pkg_is_valid(info, handle->trans, pkgfile) != 0) { + if(!info->is_valid(handle->trans, pkgfile)) { goto error; } config = 1; diff --git a/lib/libpacman/trans.cpp b/lib/libpacman/trans.cpp index 5b8ab07..cf250e0 100644 --- a/lib/libpacman/trans.cpp +++ b/lib/libpacman/trans.cpp @@ -411,7 +411,7 @@ int __pmtrans_t::add(const char *target, pmtranstype_t type, int flags) } pkg_new = _pacman_filedb_load(NULL, target); - if(pkg_new == NULL || _pacman_pkg_is_valid(pkg_new, this, target) != 0) { + if(pkg_new == NULL || !pkg_new->is_valid(this, target)) { /* pm_errno is already set by _pacman_filedb_load() */ goto error; } _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
