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

Reply via email to