summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/backup.c
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-07-14 22:32:03 +0200
committerDan McGee <dan@archlinux.org>2011-07-14 22:34:04 +0200
commitaf357d6ab00d8ca258dfd7abb689d6fd2eb4090f (patch)
tree81218f7e003e71d2d8c7feee6671516865f751d6 /lib/libalpm/backup.c
parent36e48573ceee0f707de0dcc55d1da442d949d3dc (diff)
downloadpacman-af357d6ab00d8ca258dfd7abb689d6fd2eb4090f.tar.gz
pacman-af357d6ab00d8ca258dfd7abb689d6fd2eb4090f.tar.xz
Allow fileconflict if unowned file moving into backup array
The bulk of this commit is adding new tests to ensure the new behavior works without disrupting old behavior. This is a relatively sane maneuver when a package adds a conf file (e.g. '/etc/mercurial/hgrc') that was not previously in the package, but it is placed in the backup array. In essence, we can treat the existing file as having always been a part of the package and do our normal compare/install as pacnew logic checks. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/backup.c')
-rw-r--r--lib/libalpm/backup.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/libalpm/backup.c b/lib/libalpm/backup.c
index becc7be9..728c1d05 100644
--- a/lib/libalpm/backup.c
+++ b/lib/libalpm/backup.c
@@ -58,16 +58,15 @@ int _alpm_split_backup(const char *string, alpm_backup_t **backup)
/* Look for a filename in a alpm_pkg_t.backup list. If we find it,
* then we return the full backup entry.
*/
-alpm_backup_t *_alpm_needbackup(const char *file, const alpm_list_t *backup_list)
+alpm_backup_t *_alpm_needbackup(const char *file, alpm_pkg_t *pkg)
{
const alpm_list_t *lp;
- if(file == NULL || backup_list == NULL) {
+ if(file == NULL || pkg == NULL) {
return NULL;
}
- /* run through the backup list and parse out the hash for our file */
- for(lp = backup_list; lp; lp = lp->next) {
+ for(lp = alpm_pkg_get_backup(pkg); lp; lp = lp->next) {
alpm_backup_t *backup = lp->data;
if(strcmp(file, backup->name) == 0) {