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

commit f749ee176b5119a7b693cec580c6dd7d2653e084
Author: Michel Hermier <herm...@frugalware.org>
Date:   Sat Nov 9 13:10:24 2013 +0100

libpacman: Stub _pacman_db_remove operations.

diff --git a/lib/libpacman/be_files.c b/lib/libpacman/be_files.c
index 7c7dcc4..9b78191 100644
--- a/lib/libpacman/be_files.c
+++ b/lib/libpacman/be_files.c
@@ -518,24 +518,18 @@ int _pacman_db_write(pmdb_t *db, pmpkg_t *info, unsigned 
int inforeq)
} else {
RET_ERR(PM_ERR_WRONG_ARGS, -1); // Not supported
}
-
}

int _pacman_db_remove(pmdb_t *db, pmpkg_t *info)
{
-       char path[PATH_MAX];
-
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
-       if(info == NULL) {
-               RET_ERR(PM_ERR_DB_NULL, -1);
-       }
+       ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1));

-       snprintf(path, PATH_MAX, "%s/%s-%s", db->path, info->name, 
info->version);
-       if(_pacman_rmrf(path) == -1) {
-               return(-1);
+       if(db->ops->remove != NULL) {
+               return db->ops->remove(db, info);
+       } else {
+               RET_ERR(PM_ERR_WRONG_ARGS, -1); // Not supported
}
-
-       return(0);
}

/* reads dbpath/.lastupdate and populates *ts with the contents.
diff --git a/lib/libpacman/db.h b/lib/libpacman/db.h
index 3495956..91ac568 100644
--- a/lib/libpacman/db.h
+++ b/lib/libpacman/db.h
@@ -48,6 +48,7 @@ struct __pmdb_ops_t {
int (*rewind)(pmdb_t *db);

int (*write)(pmdb_t *db, pmpkg_t *info, unsigned int inforeq); /* Optional */
+       int (*remove)(pmdb_t *db, pmpkg_t *info); /* Optional */
};

/* Database */
diff --git a/lib/libpacman/db/localdb.c b/lib/libpacman/db/localdb.c
index 5862b1e..70a36c5 100644
--- a/lib/libpacman/db/localdb.c
+++ b/lib/libpacman/db/localdb.c
@@ -154,9 +154,7 @@ int _pacman_localdb_write(pmdb_t *db, pmpkg_t *info, 
unsigned int inforeq)
int retval = 0;

ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
-       if(info == NULL) {
-               return(-1);
-       }
+       ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1));

snprintf(path, PATH_MAX, "%s/%s-%s", db->path, info->name, info->version);
oldmask = umask(0000);
@@ -241,12 +239,28 @@ cleanup:
return(retval);
}

+int _pacman_localdb_remove(pmdb_t *db, pmpkg_t *info)
+{
+       char path[PATH_MAX];
+
+       ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
+       ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1));
+
+       snprintf(path, PATH_MAX, "%s/%s-%s", db->path, info->name, 
info->version);
+       if(_pacman_rmrf(path) == -1) {
+               return(-1);
+       }
+
+       return(0);
+}
+
const pmdb_ops_t _pacman_localdb_ops = {
.test = _pacman_localdb_test,
.open = _pacman_localdb_open,
.close = _pacman_localdb_close,
.rewind = _pacman_localdb_rewind,
.write = _pacman_localdb_write,
+       .remove = _pacman_localdb_remove,
};

/* vim: set ts=2 sw=2 noet: */
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to