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

commit 112a29de8f6aef05dd311053d322a6c6a8e9bf8c
Author: Michel Hermier <[email protected]>
Date:   Mon Apr 28 08:25:26 2014 +0200

libpacman: s/_pacman_pkg_dup/libpacman::Package::dup/

diff --git a/lib/libpacman/cache.cpp b/lib/libpacman/cache.cpp
index 15b7fe4..d548a78 100644
--- a/lib/libpacman/cache.cpp
+++ b/lib/libpacman/cache.cpp
@@ -116,7 +116,7 @@ int _pacman_db_add_pkgincache(Database *db, Package *pkg)
return(-1);
}

-       newpkg = _pacman_pkg_dup(pkg);
+       newpkg = pkg->dup();
if(newpkg == NULL) {
return(-1);
}
diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp
index ead6a11..d881f82 100644
--- a/lib/libpacman/package.cpp
+++ b/lib/libpacman/package.cpp
@@ -62,10 +62,54 @@ Package::Package(const char *name, const char *version)
}
}

+Package::Package(const libpacman::Package &other)
+{
+       database       = other.database;
+       STRNCPY(name,        other.name,        PKG_NAME_LEN);
+       STRNCPY(version,     other.version,     PKG_VERSION_LEN);
+       STRNCPY(desc,        other.desc,        PKG_DESC_LEN);
+       STRNCPY(url,         other.url,         PKG_URL_LEN);
+       STRNCPY(builddate,   other.builddate,   PKG_DATE_LEN);
+       STRNCPY(buildtype,   other.buildtype,   PKG_DATE_LEN);
+       STRNCPY(installdate, other.installdate, PKG_DATE_LEN);
+       STRNCPY(packager,    other.packager,    PKG_PACKAGER_LEN);
+       STRNCPY(md5sum,      other.md5sum,      PKG_MD5SUM_LEN);
+       STRNCPY(sha1sum,     other.sha1sum,     PKG_SHA1SUM_LEN);
+       STRNCPY(arch,        other.arch,        PKG_ARCH_LEN);
+       size           = other.size;
+       usize          = other.usize;
+       force          = other.force;
+       stick          = other.stick;
+       scriptlet      = other.scriptlet;
+       reason         = other.reason;
+       license        = _pacman_list_strdup(other.license);
+       desc_localized = _pacman_list_strdup(other.desc_localized);
+       requiredby     = _pacman_list_strdup(other.requiredby);
+       conflicts      = _pacman_list_strdup(other.conflicts);
+       files          = _pacman_list_strdup(other.files);
+       backup         = _pacman_list_strdup(other.backup);
+       depends        = _pacman_list_strdup(other.depends);
+       removes        = _pacman_list_strdup(other.removes);
+       groups         = _pacman_list_strdup(other.groups);
+       provides       = _pacman_list_strdup(other.provides);
+       replaces       = _pacman_list_strdup(other.replaces);
+       triggers       = _pacman_list_strdup(other.triggers);
+
+       /* internal */
+       origin         = other.origin;
+       data           = (origin == PKG_FROM_FILE) ? strdup(other.data) : 
other.data;
+       infolevel      = other.infolevel;
+}
+
Package::~Package()
{
}

+libpacman::Package *Package::dup() const
+{
+       return new Package(*this);
+}
+
/*
static
unsigned int _pacman_pkg_parm_to_flag(unsigned char parm)
@@ -132,52 +176,6 @@ Package *_pacman_pkg_new_from_filename(const char 
*filename, int witharch)
return pkg;
}

-Package *_pacman_pkg_dup(Package *pkg)
-{
-       Package* newpkg = _pacman_malloc(sizeof(Package));
-
-       if(newpkg == NULL) {
-               return(NULL);
-       }
-
-       STRNCPY(newpkg->name, pkg->name, PKG_NAME_LEN);
-       STRNCPY(newpkg->version, pkg->version, PKG_VERSION_LEN);
-       STRNCPY(newpkg->desc, pkg->desc, PKG_DESC_LEN);
-       STRNCPY(newpkg->url, pkg->url, PKG_URL_LEN);
-       STRNCPY(newpkg->builddate, pkg->builddate, PKG_DATE_LEN);
-       STRNCPY(newpkg->buildtype, pkg->buildtype, PKG_DATE_LEN);
-       STRNCPY(newpkg->installdate, pkg->installdate, PKG_DATE_LEN);
-       STRNCPY(newpkg->packager, pkg->packager, PKG_PACKAGER_LEN);
-       STRNCPY(newpkg->md5sum, pkg->md5sum, PKG_MD5SUM_LEN);
-       STRNCPY(newpkg->sha1sum, pkg->sha1sum, PKG_SHA1SUM_LEN);
-       STRNCPY(newpkg->arch, pkg->arch, PKG_ARCH_LEN);
-       newpkg->size       = pkg->size;
-       newpkg->usize      = pkg->usize;
-       newpkg->force      = pkg->force;
-       newpkg->stick      = pkg->stick;
-       newpkg->scriptlet  = pkg->scriptlet;
-       newpkg->reason     = pkg->reason;
-       newpkg->license    = _pacman_list_strdup(pkg->license);
-       newpkg->desc_localized = _pacman_list_strdup(pkg->desc_localized);
-       newpkg->requiredby = _pacman_list_strdup(pkg->requiredby);
-       newpkg->conflicts  = _pacman_list_strdup(pkg->conflicts);
-       newpkg->files      = _pacman_list_strdup(pkg->files);
-       newpkg->backup     = _pacman_list_strdup(pkg->backup);
-       newpkg->depends    = _pacman_list_strdup(pkg->depends);
-       newpkg->removes    = _pacman_list_strdup(pkg->removes);
-       newpkg->groups     = _pacman_list_strdup(pkg->groups);
-       newpkg->provides   = _pacman_list_strdup(pkg->provides);
-       newpkg->replaces   = _pacman_list_strdup(pkg->replaces);
-       newpkg->triggers = _pacman_list_strdup(pkg->triggers);
-
-       /* internal */
-       newpkg->origin     = pkg->origin;
-       newpkg->data = (newpkg->origin == PKG_FROM_FILE) ? strdup(pkg->data) : 
pkg->data;
-       newpkg->infolevel  = pkg->infolevel;
-
-       return(newpkg);
-}
-
int _pacman_pkg_delete(Package *self)
{
ASSERT(_pacman_pkg_fini(self) == 0, RET_ERR(PM_ERR_WRONG_ARGS, -1));
diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h
index 0de6772..1a14d94 100644
--- a/lib/libpacman/package.h
+++ b/lib/libpacman/package.h
@@ -93,8 +93,11 @@ class Package
public:
Package();
Package(const char *name, const char *version);
+       Package(const libpacman::Package &other);
virtual ~Package();

+       virtual libpacman::Package *dup() const;
+
virtual int read(unsigned int flags);
virtual int write(unsigned int flags); /* Optional */
virtual int remove(); /* Optional */
@@ -150,7 +153,6 @@ do { \
#define FREELISTPKGS(p) _FREELIST(p, _pacman_pkg_delete)

libpacman::Package *_pacman_pkg_new_from_filename(const char *filename, int 
witharch);
-libpacman::Package *_pacman_pkg_dup(libpacman::Package *pkg);
int _pacman_pkg_delete(libpacman::Package *self);

int _pacman_pkg_init(libpacman::Package *self, libpacman::Database *db);
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to