From 4942d216323cbe2f099c43893cc95368a3cd1197 Mon Sep 17 00:00:00 2001 From: Aaron Griffin Date: Thu, 27 Sep 2007 23:03:35 -0500 Subject: Break out transaction test to a separate function Added needs_transaction, putting out "hey do we need root?" tests in one place. Signed-off-by: Aaron Griffin --- src/pacman/util.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/pacman/util.c') diff --git a/src/pacman/util.c b/src/pacman/util.c index 8bf4ec14..4cb93156 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -45,6 +45,25 @@ extern config_t *config; +int needs_transaction() +{ + if(config->op != PM_OP_MAIN && config->op != PM_OP_QUERY && config->op != PM_OP_DEPTEST) { + if((config->op == PM_OP_SYNC && !config->op_s_sync && + (config->op_s_search || config->group || config->op_q_list || config->op_q_info + || config->flags & PM_TRANS_FLAG_PRINTURIS)) + || config->op == PM_OP_DEPTEST + || (strcmp(alpm_option_get_root(), "/") != 0)) { + /* special case: PM_OP_SYNC can be used w/ config->op_s_search by any user */ + /* special case: ignore root user check if -r is specified, fall back on + * normal FS checking */ + return(0); + } else { + return(1); + } + } + return(0); +} + /* gets the current screen column width */ int getcols() { -- cgit v1.2.3-70-g09d2