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

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

libpacman: Make Package accessors, auto/lazy loading.

diff --git a/lib/libpacman/db/localdb.cpp b/lib/libpacman/db/localdb.cpp
index 7c3722d..698d765 100644
--- a/lib/libpacman/db/localdb.cpp
+++ b/lib/libpacman/db/localdb.cpp
@@ -61,7 +61,7 @@ int _pacman_localpkg_file_reader(Database *db, Package *pkg, 
unsigned int flags,
{
int ret = 0;

-       if(flags & flags_masq) {
+       if((flags & flags_masq) != 0) {
FILE *fp = NULL;
char path[PATH_MAX];

@@ -108,8 +108,8 @@ int LocalPackage::read(unsigned int flags)
if(!stat(path, &buf)) {
scriptlet = 1;
}
-               this->flags |= PM_LOCALPACKAGE_FLAGS_SCRIPLET;
}
+       this->flags |= flags;
return 0;
}

diff --git a/lib/libpacman/db/syncdb.cpp b/lib/libpacman/db/syncdb.cpp
index ac4b90a..bd785eb 100644
--- a/lib/libpacman/db/syncdb.cpp
+++ b/lib/libpacman/db/syncdb.cpp
@@ -75,7 +75,7 @@ int _pacman_syncpkg_file_reader(Database *db, Package *pkg, 
unsigned int flags,
{
int ret = 0;

-       if(flags & flags_masq) {
+       if((flags & flags_masq) != 0) {
FILE *fp = _pacman_archive_read_fropen(db->handle);

ASSERT(fp != NULL, RET_ERR(PM_ERR_MEMORY, -1));
diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp
index abb604f..27be50a 100644
--- a/lib/libpacman/package.cpp
+++ b/lib/libpacman/package.cpp
@@ -58,9 +58,11 @@ Package::Package(const char *name, const char *version)
: m_reason(PM_PKG_REASON_EXPLICIT)
{
if(!_pacman_strempty(name)) {
+               flags |= PM_PACKAGE_FLAG_NAME;
STRNCPY(m_name, name, PKG_NAME_LEN);
}
if(!_pacman_strempty(version)) {
+               flags |= PM_PACKAGE_FLAG_VERSION;
STRNCPY(m_version, version, PKG_VERSION_LEN);
}
}
@@ -184,7 +186,11 @@ unsigned int _pacman_pkg_parm_to_flag(unsigned char parm)

bool Package::set_filename(const char *filename, int witharch)
{
-       return Package::splitname(filename, m_name, m_version, witharch);
+       if(splitname(filename, m_name, m_version, witharch)) {
+               flags |= PM_PACKAGE_FLAG_NAME | PM_PACKAGE_FLAG_VERSION;
+               return true;
+       }
+       return false;
}

int _pacman_pkg_delete(Package *self)
@@ -522,7 +528,10 @@ char *Package::fileneedbackup(const char *file) const
#define LIBPACMAN_PACKAGE_PROPERTY(type, name, flag)                           \
type Package::name()                                                           \
{                                                                              \
-       return getinfo(PM_PKG_##flag);                                          
     \
+       if((flags & PM_PACKAGE_FLAG_##flag) == 0) {                             
     \
+               read(PM_PACKAGE_FLAG_##flag);                                   
           \
+       }                                                                       
     \
+       return m_##name;                                                        
     \
}

#include "package_properties.h"
diff --git a/lib/libpacman/package_properties.h 
b/lib/libpacman/package_properties.h
index aa831c3..9e492dc 100644
--- a/lib/libpacman/package_properties.h
+++ b/lib/libpacman/package_properties.h
@@ -29,6 +29,6 @@ LIBPACMAN_PACKAGE_PROPERTY(FStringList *, provides,   
PROVIDES  )
LIBPACMAN_PACKAGE_PROPERTY(unsigned char, reason,     REASON    )
LIBPACMAN_PACKAGE_PROPERTY(FStringList *, replaces,   REPLACES  )
LIBPACMAN_PACKAGE_PROPERTY(FStringList *, requiredby, REQUIREDBY)
-LIBPACMAN_PACKAGE_PROPERTY(unsigned char, stick,      STICK     )
+LIBPACMAN_PACKAGE_PROPERTY(unsigned char, stick,      STICKY    )
LIBPACMAN_PACKAGE_PROPERTY(const char *,  version,    VERSION   )
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to