summaryrefslogtreecommitdiffstats
path: root/src/pacman/sync.c
diff options
context:
space:
mode:
authorAurelien Foret <aurelien@archlinux.org>2006-01-07 19:42:44 +0100
committerAurelien Foret <aurelien@archlinux.org>2006-01-07 19:42:44 +0100
commit86e5c8bc0649a6df814bdff850a787826612f366 (patch)
tree0c81099af96848c8c87f6a305fea2f64cd0e020d /src/pacman/sync.c
parente405204915600340180cef61471471929fb0c275 (diff)
downloadpacman-86e5c8bc0649a6df814bdff850a787826612f366.tar.gz
pacman-86e5c8bc0649a6df814bdff850a787826612f366.tar.xz
sync_commit can now return conflicting files with a trans_prepare like data structure (patch from VMiklos <vmiklos@frugalware.org>)
Diffstat (limited to 'src/pacman/sync.c')
-rw-r--r--src/pacman/sync.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index 7a76dea0..74733e06 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -756,8 +756,19 @@ int pacman_sync(list_t *targets)
}
/* Step 3: actually perform the installation */
- if(alpm_trans_commit() == -1) {
+ if(alpm_trans_commit(&data) == -1) {
ERR(NL, "failed to commit transaction (%s)\n", alpm_strerror(pm_errno));
+ 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));
+ }
+ alpm_list_free(data);
+ MSG(NL, "\nerrors occurred, no packages were upgraded.\n");
+ break;
+ default:
+ break;
+ }
retval = 1;
goto cleanup;
}