Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=a7a2abc9e8d35486ea6a8dc6957a5611cd59d749
commit a7a2abc9e8d35486ea6a8dc6957a5611cd59d749 Author: Michel Hermier <[email protected]> Date: Wed May 14 22:26:12 2014 +0200 libpacman: Merge _pacman_remove_addtarget in __pmtrans_t::add. diff --git a/lib/libpacman/trans.cpp b/lib/libpacman/trans.cpp index dc1f1ef..44922e0 100644 --- a/lib/libpacman/trans.cpp +++ b/lib/libpacman/trans.cpp @@ -633,35 +633,6 @@ Package *_pacman_filedb_load(Database *db, const char *name) return _pacman_fpmpackage_load(name); } -static -int _pacman_remove_addtarget(pmtrans_t *trans, const char *name) -{ - Package *pkg_local; - Database *db_local = trans->handle->db_local; - - ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); - - if(_pacman_pkg_isin(name, trans->packages)) { - RET_ERR(PM_ERR_TRANS_DUP_TARGET, -1); - } - - if((pkg_local = db_local->scan(name, INFRQ_ALL)) == NULL) { - _pacman_log(PM_LOG_ERROR, _("could not find %s in database"), name); - RET_ERR(PM_ERR_PKG_NOT_FOUND, -1); - } - - /* ignore holdpkgs on upgrade */ - if((trans == handle->trans) && _pacman_list_is_strin(pkg_local->name(), handle->holdpkg)) { - int resp = 0; - QUESTION(trans, PM_TRANS_CONV_REMOVE_HOLDPKG, pkg_local, NULL, NULL, &resp); - if(!resp) { - RET_ERR(PM_ERR_PKG_HOLD, -1); - } - } - - return trans->add(pkg_local, trans->type, 0); -} - // FIXME: Make returning a pmsyncpkg_t in the future int __pmtrans_t::add(const char *target, pmtranstype_t type, int flags) { @@ -825,10 +796,26 @@ int __pmtrans_t::add(const char *target, pmtranstype_t type, int flags) } } if(type == PM_TRANS_TYPE_REMOVE) { - if(_pacman_remove_addtarget(this, target) == -1) { - return -1; + if(_pacman_pkg_isin(target, packages)) { + RET_ERR(PM_ERR_TRANS_DUP_TARGET, -1); + } + + if((pkg_local = db_local->scan(target, INFRQ_ALL)) == NULL) { + _pacman_log(PM_LOG_ERROR, _("could not find %s in database"), target); + RET_ERR(PM_ERR_PKG_NOT_FOUND, -1); + } + + /* ignore holdpkgs on upgrade */ + if((this == handle->trans) && _pacman_list_is_strin(pkg_local->name(), handle->holdpkg)) { + int resp = 0; + QUESTION(this, PM_TRANS_CONV_REMOVE_HOLDPKG, pkg_local, NULL, NULL, &resp); + if(!resp) { + RET_ERR(PM_ERR_PKG_HOLD, -1); } } + + return add(pkg_local, type, 0); + } } return(0); @@ -1975,7 +1962,7 @@ int __pmtrans_t::commit(pmlist_t **data) if(tr == NULL) { RET_ERR(PM_ERR_TRANS_ABORT, -1); } - if(_pacman_remove_addtarget(tr, pkg_new->name()) == -1) { + if(tr->add(pkg_new->name(), PM_TRANS_TYPE_REMOVE, 0) == -1) { delete tr; RET_ERR(PM_ERR_TRANS_ABORT, -1); } _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
