From bcd7ce0dfdc773be440cae5f87b6b9538442aef3 Mon Sep 17 00:00:00 2001 From: Aurelien Foret Date: Sun, 5 Feb 2006 09:34:49 +0000 Subject: added support for the PM_CONFLICT structure to handle file conflicts --- src/pacman/add.c | 17 ++++++++++++++--- src/pacman/sync.c | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 4 deletions(-) (limited to 'src/pacman') diff --git a/src/pacman/add.c b/src/pacman/add.c index 9020449d..c63e14b5 100644 --- a/src/pacman/add.c +++ b/src/pacman/add.c @@ -91,7 +91,6 @@ int pacman_add(list_t *targets) case PM_ERR_UNSATISFIED_DEPS: for(i = alpm_list_first(data); i; i = alpm_list_next(i)) { PM_DEPMISS *miss = alpm_list_getdata(i); - MSG(NL, ":: %s: requires %s", alpm_dep_getinfo(miss, PM_DEP_TARGET), alpm_dep_getinfo(miss, PM_DEP_NAME)); switch((int)alpm_dep_getinfo(miss, PM_DEP_MOD)) { @@ -106,7 +105,6 @@ int pacman_add(list_t *targets) case PM_ERR_CONFLICTING_DEPS: for(i = alpm_list_first(data); i; i = alpm_list_next(i)) { PM_DEPMISS *miss = alpm_list_getdata(i); - MSG(NL, ":: %s: conflicts with %s", alpm_dep_getinfo(miss, PM_DEP_TARGET), alpm_dep_getinfo(miss, PM_DEP_NAME)); } @@ -114,7 +112,20 @@ int pacman_add(list_t *targets) break; case PM_ERR_FILE_CONFLICTS: for(i = alpm_list_first(data); i; i = alpm_list_next(i)) { - MSG(NL, ":: %s", (char *)alpm_list_getdata(i)); + PM_CONFLICT *conflict = alpm_list_getdata(i); + switch((int)alpm_conflict_getinfo(conflict, PM_CONFLICT_TYPE)) { + case PM_CONFLICT_TYPE_TARGET: + MSG(NL, "%s exists in \"%s\" (target) and \"%s\" (target)", + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_FILE), + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_TARGET), + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_CTARGET)); + break; + case PM_CONFLICT_TYPE_FILE: + MSG(NL, "%s: %s exists in filesystem", + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_TARGET), + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_FILE)); + break; + } } alpm_list_free(data); MSG(NL, "\nerrors occurred, no packages were upgraded.\n"); diff --git a/src/pacman/sync.c b/src/pacman/sync.c index d9463a87..c46cf7b3 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -766,7 +766,20 @@ int pacman_sync(list_t *targets) switch(pm_errno) { case PM_ERR_FILE_CONFLICTS: for(lp = alpm_list_first(data); lp; lp = alpm_list_next(lp)) { - MSG(NL, ":: %s\n", (char *)alpm_list_getdata(lp)); + PM_CONFLICT *conflict = alpm_list_getdata(i); + switch((int)alpm_conflict_getinfo(conflict, PM_CONFLICT_TYPE)) { + case PM_CONFLICT_TYPE_TARGET: + MSG(NL, "%s exists in \"%s\" (target) and \"%s\" (target)", + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_FILE), + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_TARGET), + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_CTARGET)); + break; + case PM_CONFLICT_TYPE_FILE: + MSG(NL, "%s: %s exists in filesystem", + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_TARGET), + (char *)alpm_conflict_getinfo(conflict, PM_CONFLICT_FILE)); + break; + } } alpm_list_free(data); MSG(NL, "\nerrors occurred, no packages were upgraded.\n"); -- cgit v1.2.3-70-g09d2