summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNagy Gabor <ngaba@bibl.u-szeged.hu>2008-01-25 21:31:20 +0100
committerDan McGee <dan@archlinux.org>2008-01-27 18:54:25 +0100
commitea828b5693d389d24c744841385b16cb37a32fce (patch)
treef985ae6d3f1fec2bd9c5f2eca78ed76a5f880dd5
parentf432ce41e0892b17d062d8d64ac221e7bc4d718c (diff)
downloadpacman-ea828b5693d389d24c744841385b16cb37a32fce.tar.gz
pacman-ea828b5693d389d24c744841385b16cb37a32fce.tar.xz
New _alpm_conflict_dup function
Added function to cleanly duplicate a conflict. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
-rw-r--r--lib/libalpm/conflict.c11
-rw-r--r--lib/libalpm/conflict.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c
index 7b4cd0c2..9f6f93da 100644
--- a/lib/libalpm/conflict.c
+++ b/lib/libalpm/conflict.c
@@ -62,6 +62,17 @@ void _alpm_conflict_free(pmconflict_t *conflict)
FREE(conflict);
}
+pmconflict_t *_alpm_conflict_dup(const pmconflict_t *conflict)
+{
+ pmconflict_t *newconflict;
+ CALLOC(newconflict, 1, sizeof(pmconflict_t), RET_ERR(PM_ERR_MEMORY, NULL));
+
+ STRDUP(newconflict->package1, conflict->package1, RET_ERR(PM_ERR_MEMORY, NULL));
+ STRDUP(newconflict->package2, conflict->package2, RET_ERR(PM_ERR_MEMORY, NULL));
+
+ return(newconflict);
+}
+
int _alpm_conflict_isin(pmconflict_t *needle, alpm_list_t *haystack)
{
alpm_list_t *i;
diff --git a/lib/libalpm/conflict.h b/lib/libalpm/conflict.h
index 98a3efe6..71ed579d 100644
--- a/lib/libalpm/conflict.h
+++ b/lib/libalpm/conflict.h
@@ -36,6 +36,7 @@ struct __pmfileconflict_t {
};
pmconflict_t *_alpm_conflict_new(const char *package1, const char *package2);
+pmconflict_t *_alpm_conflict_dup(const pmconflict_t *conflict);
void _alpm_conflict_free(pmconflict_t *conflict);
int _alpm_conflict_isin(pmconflict_t *needle, alpm_list_t *haystack);
alpm_list_t *_alpm_innerconflicts(alpm_list_t *packages);