diff options
author | Aurelien Foret <aurelien@archlinux.org> | 2006-01-07 19:42:44 +0100 |
---|---|---|
committer | Aurelien Foret <aurelien@archlinux.org> | 2006-01-07 19:42:44 +0100 |
commit | 86e5c8bc0649a6df814bdff850a787826612f366 (patch) | |
tree | 0c81099af96848c8c87f6a305fea2f64cd0e020d /src/pacman/sync.c | |
parent | e405204915600340180cef61471471929fb0c275 (diff) | |
download | pacman-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.c | 13 |
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; } |