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