Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=75106403395e5e7a57ebca6fafb8ce36b88efb35

commit 75106403395e5e7a57ebca6fafb8ce36b88efb35
Author: Michel Hermier <[email protected]>
Date:   Mon May 5 13:23:50 2014 +0200

libpacman: Merge Package::getinfo in its ownly caller pacman_pkg_getinfo.

diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp
index 27be50a..b52f32c 100644
--- a/lib/libpacman/package.cpp
+++ b/lib/libpacman/package.cpp
@@ -341,104 +341,6 @@ int Package::remove()
return database->remove(this);
}

-void *Package::getinfo(unsigned char parm)
-{
-       void *data = NULL;
-
-#if 1
-       /* Update the cache package entry if needed */
-       if(origin == PKG_FROM_CACHE) {
-               switch(parm) {
-                       /* Desc entry */
-                       case PM_PKG_DESC:
-                       case PM_PKG_GROUPS:
-                       case PM_PKG_URL:
-                       case PM_PKG_LICENSE:
-                       case PM_PKG_ARCH:
-                       case PM_PKG_BUILDDATE:
-                       case PM_PKG_INSTALLDATE:
-                       case PM_PKG_PACKAGER:
-                       case PM_PKG_SIZE:
-                       case PM_PKG_USIZE:
-                       case PM_PKG_REASON:
-                       case PM_PKG_MD5SUM:
-                       case PM_PKG_SHA1SUM:
-                       case PM_PKG_REPLACES:
-                       case PM_PKG_FORCE:
-                               if(!(flags & INFRQ_DESC)) {
-                                       _pacman_log(PM_LOG_DEBUG, _("loading 
DESC info for '%s'"), name());
-                                       database->read(this, INFRQ_DESC);
-                               }
-                       break;
-                       /* Depends entry */
-                       case PM_PKG_DEPENDS:
-                       case PM_PKG_REQUIREDBY:
-                       case PM_PKG_CONFLICTS:
-                       case PM_PKG_PROVIDES:
-                               if(!(flags & INFRQ_DEPENDS)) {
-                                       _pacman_log(PM_LOG_DEBUG, "loading 
DEPENDS info for '%s'", name());
-                                       database->read(this, INFRQ_DEPENDS);
-                               }
-                       break;
-                       /* Files entry */
-                       case PM_PKG_FILES:
-                       case PM_PKG_BACKUP:
-                               if(this->data == handle->db_local && !(flags & 
INFRQ_FILES)) {
-                                       _pacman_log(PM_LOG_DEBUG, _("loading 
FILES info for '%s'"), name());
-                                       database->read(this, INFRQ_FILES);
-                               }
-                       break;
-                       /* Scriptlet */
-                       case PM_PKG_SCRIPLET:
-                               if(this->data == handle->db_local && !(flags & 
INFRQ_SCRIPLET)) {
-                                       _pacman_log(PM_LOG_DEBUG, _("loading 
SCRIPLET info for '%s'"), name());
-                                       database->read(this, INFRQ_SCRIPLET);
-                               }
-                       break;
-               }
-       }
-#else
-       read(_pacman_pkg_parm_to_flag(parm));
-#endif
-
-       switch(parm) {
-               case PM_PKG_NAME:        data = m_name; break;
-               case PM_PKG_VERSION:     data = m_version; break;
-               case PM_PKG_DESC:        data = desc; break;
-               case PM_PKG_GROUPS:      data = m_groups; break;
-               case PM_PKG_URL:         data = url; break;
-               case PM_PKG_ARCH:        data = arch; break;
-               case PM_PKG_BUILDDATE:   data = builddate; break;
-               case PM_PKG_BUILDTYPE:   data = buildtype; break;
-               case PM_PKG_INSTALLDATE: data = installdate; break;
-               case PM_PKG_PACKAGER:    data = packager; break;
-               case PM_PKG_SIZE:        data = (void *)(long)size; break;
-               case PM_PKG_USIZE:       data = (void *)(long)usize; break;
-               case PM_PKG_REASON:      data = (void *)(long)m_reason; break;
-               case PM_PKG_LICENSE:     data = license; break;
-               case PM_PKG_REPLACES:    data = m_replaces; break;
-               case PM_PKG_FORCE:       data = (void *)(long)m_force; break;
-               case PM_PKG_STICK:       data = (void *)(long)m_stick; break;
-               case PM_PKG_MD5SUM:      data = md5sum; break;
-               case PM_PKG_SHA1SUM:     data = sha1sum; break;
-               case PM_PKG_DEPENDS:     data = m_depends; break;
-               case PM_PKG_REMOVES:     data = removes; break;
-               case PM_PKG_REQUIREDBY:  data = m_requiredby; break;
-               case PM_PKG_PROVIDES:    data = m_provides; break;
-               case PM_PKG_CONFLICTS:   data = m_conflicts; break;
-               case PM_PKG_FILES:       data = m_files; break;
-               case PM_PKG_BACKUP:      data = backup; break;
-               case PM_PKG_SCRIPLET:    data = (void *)(long)scriptlet; break;
-               case PM_PKG_DATA:        data = this->data; break;
-               case PM_PKG_TRIGGERS:    data = triggers; break;
-               default:
-                       data = NULL;
-               break;
-       }
-
-       return(data);
-}
-
pmlist_t *_pacman_pkg_getowners(const char *filename)
{
struct stat buf;
diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h
index b031e5a..6a74e09 100644
--- a/lib/libpacman/package.h
+++ b/lib/libpacman/package.h
@@ -106,8 +106,6 @@ public:

virtual libpacman::Package *dup() const;

-       virtual void *getinfo(unsigned char parm);
-
virtual int read(unsigned int flags);
virtual int write(unsigned int flags); /* Optional */
virtual int remove(); /* Optional */
diff --git a/lib/libpacman/pacman.cpp b/lib/libpacman/pacman.cpp
index 3e4dfd1..7ce9bb2 100644
--- a/lib/libpacman/pacman.cpp
+++ b/lib/libpacman/pacman.cpp
@@ -42,6 +42,7 @@
#include "server.h"
#include "packages_transaction.h"

+#include "db/localdb_files.h"
#include "db/syncdb.h"
#include "hash/md5.h"
#include "hash/sha1.h"
@@ -790,13 +791,101 @@ int pacman_download_xfered(const pmdownload_t *download, 
off64_t *offset)
*/
void *pacman_pkg_getinfo(pmpkg_t *_pkg, unsigned char parm)
{
+       void *data = NULL;
Package *pkg = cxx_cast(_pkg);

/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
ASSERT(pkg != NULL, return(NULL));

-       return pkg->getinfo(parm);
+       /* Update the cache package entry if needed */
+       if(pkg->origin == PKG_FROM_CACHE) {
+               switch(parm) {
+                       /* Desc entry */
+                       case PM_PKG_DESC:
+                       case PM_PKG_GROUPS:
+                       case PM_PKG_URL:
+                       case PM_PKG_LICENSE:
+                       case PM_PKG_ARCH:
+                       case PM_PKG_BUILDDATE:
+                       case PM_PKG_INSTALLDATE:
+                       case PM_PKG_PACKAGER:
+                       case PM_PKG_SIZE:
+                       case PM_PKG_USIZE:
+                       case PM_PKG_REASON:
+                       case PM_PKG_MD5SUM:
+                       case PM_PKG_SHA1SUM:
+                       case PM_PKG_REPLACES:
+                       case PM_PKG_FORCE:
+                               if(!(pkg->flags & INFRQ_DESC)) {
+                                       _pacman_log(PM_LOG_DEBUG, _("loading 
DESC info for '%s'"), pkg->name());
+                                       pkg->read(INFRQ_DESC);
+                               }
+                       break;
+                       /* Depends entry */
+                       case PM_PKG_DEPENDS:
+                       case PM_PKG_REQUIREDBY:
+                       case PM_PKG_CONFLICTS:
+                       case PM_PKG_PROVIDES:
+                               if(!(pkg->flags & INFRQ_DEPENDS)) {
+                                       _pacman_log(PM_LOG_DEBUG, "loading 
DEPENDS info for '%s'", pkg->name());
+                                       pkg->read(INFRQ_DEPENDS);
+                               }
+                       break;
+                       /* Files entry */
+                       case PM_PKG_FILES:
+                       case PM_PKG_BACKUP:
+                               if(pkg->data == handle->db_local && 
!(pkg->flags & INFRQ_FILES)) {
+                                       _pacman_log(PM_LOG_DEBUG, _("loading 
FILES info for '%s'"), pkg->name());
+                                       pkg->read(INFRQ_FILES);
+                               }
+                       break;
+                       /* Scriptlet */
+                       case PM_PKG_SCRIPLET:
+                               if(pkg->data == handle->db_local && 
!(pkg->flags & INFRQ_SCRIPLET)) {
+                                       _pacman_log(PM_LOG_DEBUG, _("loading 
SCRIPLET info for '%s'"), pkg->name());
+                                       pkg->read(INFRQ_SCRIPLET);
+                               }
+                       break;
+               }
+       }
+
+       switch(parm) {
+               case PM_PKG_NAME:        data = pkg->m_name; break;
+               case PM_PKG_VERSION:     data = pkg->m_version; break;
+               case PM_PKG_DESC:        data = pkg->desc; break;
+               case PM_PKG_GROUPS:      data = pkg->m_groups; break;
+               case PM_PKG_URL:         data = pkg->url; break;
+               case PM_PKG_ARCH:        data = pkg->arch; break;
+               case PM_PKG_BUILDDATE:   data = pkg->builddate; break;
+               case PM_PKG_BUILDTYPE:   data = pkg->buildtype; break;
+               case PM_PKG_INSTALLDATE: data = pkg->installdate; break;
+               case PM_PKG_PACKAGER:    data = pkg->packager; break;
+               case PM_PKG_SIZE:        data = (void *)(long)pkg->size; break;
+               case PM_PKG_USIZE:       data = (void *)(long)pkg->usize; break;
+               case PM_PKG_REASON:      data = (void *)(long)pkg->m_reason; 
break;
+               case PM_PKG_LICENSE:     data = pkg->license; break;
+               case PM_PKG_REPLACES:    data = pkg->m_replaces; break;
+               case PM_PKG_FORCE:       data = (void *)(long)pkg->m_force; 
break;
+               case PM_PKG_STICK:       data = (void *)(long)pkg->m_stick; 
break;
+               case PM_PKG_MD5SUM:      data = pkg->md5sum; break;
+               case PM_PKG_SHA1SUM:     data = pkg->sha1sum; break;
+               case PM_PKG_DEPENDS:     data = pkg->m_depends; break;
+               case PM_PKG_REMOVES:     data = pkg->removes; break;
+               case PM_PKG_REQUIREDBY:  data = pkg->m_requiredby; break;
+               case PM_PKG_PROVIDES:    data = pkg->m_provides; break;
+               case PM_PKG_CONFLICTS:   data = pkg->m_conflicts; break;
+               case PM_PKG_FILES:       data = pkg->m_files; break;
+               case PM_PKG_BACKUP:      data = pkg->backup; break;
+               case PM_PKG_SCRIPLET:    data = (void *)(long)pkg->scriptlet; 
break;
+               case PM_PKG_DATA:        data = pkg->data; break;
+               case PM_PKG_TRIGGERS:    data = pkg->triggers; break;
+               default:
+                       data = NULL;
+               break;
+       }
+
+       return(data);
}

/** Get a list of packages that own the specified file
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to