summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2013-02-15 19:21:35 -0500
committerAllan McRae <allan@archlinux.org>2013-02-24 13:11:54 +1000
commit9995510dc81ab75fbb7ad7ca4fffedf8a5318bef (patch)
treeaf37fe72e675758f238b2e37928f49fbbf2ca16c
parent4a1d93b92c76bde58193083812dda94c0fa5d373 (diff)
downloadpacman-9995510dc81ab75fbb7ad7ca4fffedf8a5318bef.tar.xz
return resolved paths from filelist_intersection
We were comparing files based on resolved paths but returning the original file_t structures, which were not necessarily in the same order. The additional file_t information was never used, so just return the resolved path. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--lib/libalpm/conflict.c4
-rw-r--r--lib/libalpm/filelist.c2
-rw-r--r--test/pacman/tests/fileconflict022.py2
3 files changed, 3 insertions, 5 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c
index 1aa653fc..54e79fe3 100644
--- a/lib/libalpm/conflict.c
+++ b/lib/libalpm/conflict.c
@@ -448,8 +448,8 @@ alpm_list_t *_alpm_db_find_fileconflicts(alpm_handle_t *handle,
alpm_list_t *k;
char path[PATH_MAX];
for(k = common_files; k; k = k->next) {
- alpm_file_t *file = k->data;
- snprintf(path, PATH_MAX, "%s%s", handle->root, file->name);
+ char *filename = k->data;
+ snprintf(path, PATH_MAX, "%s%s", handle->root, filename);
conflicts = add_fileconflict(handle, conflicts, path, p1, p2);
if(handle->pm_errno == ALPM_ERR_MEMORY) {
FREELIST(conflicts);
diff --git a/lib/libalpm/filelist.c b/lib/libalpm/filelist.c
index c4814a49..5c5f017b 100644
--- a/lib/libalpm/filelist.c
+++ b/lib/libalpm/filelist.c
@@ -299,7 +299,7 @@ alpm_list_t *_alpm_filelist_intersection(alpm_filelist_t *filesA,
/* when not directories, item in both qualifies as an intersect */
if(! (isdirA && isdirB)) {
- ret = alpm_list_add(ret, filesA->files + ctrA);
+ ret = alpm_list_add(ret, filesA->resolved_path[ctrA]);
}
ctrA++;
ctrB++;
diff --git a/test/pacman/tests/fileconflict022.py b/test/pacman/tests/fileconflict022.py
index 6f9aec93..5759d4c3 100644
--- a/test/pacman/tests/fileconflict022.py
+++ b/test/pacman/tests/fileconflict022.py
@@ -17,5 +17,3 @@ self.addrule("PACMAN_RETCODE=1")
self.addrule("PACMAN_OUTPUT=.*/usr/lib/file exists in both 'foo' and 'bar'")
self.addrule("!PKG_EXIST=foo")
self.addrule("!PKG_EXIST=bar")
-
-self.expectfailure = True