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
