From 0cff7c6bdf5461c3286edc940aabb88d63345381 Mon Sep 17 00:00:00 2001
From: Nagy Gabor <ngaba@bibl.u-szeged.hu>
Date: Thu, 25 Oct 2007 02:31:28 +0200
Subject: Add alpm_dep_get_string method

Public alpm_dep_get_string function is introduced, which converts a
pmdepend_t structure to printable string in %DEPENDS% format.  This
function is now used in pacman to print dependency error messages.

Signed-off-by: Dan McGee <dan@archlinux.org>
---
 src/pacman/add.c    | 18 +++---------------
 src/pacman/remove.c |  4 +++-
 src/pacman/sync.c   | 18 +++---------------
 3 files changed, 9 insertions(+), 31 deletions(-)

(limited to 'src/pacman')

diff --git a/src/pacman/add.c b/src/pacman/add.c
index 0b59a236..f883a6bd 100644
--- a/src/pacman/add.c
+++ b/src/pacman/add.c
@@ -137,26 +137,14 @@ int pacman_add(alpm_list_t *targets)
 				for(i = data; i; i = alpm_list_next(i)) {
 					pmdepmissing_t *miss = alpm_list_getdata(i);
 					pmdepend_t *dep = alpm_miss_get_dep(miss);
+					char *depstring = alpm_dep_get_string(dep);
 				
 					/* TODO indicate if the error was a virtual package or not:
 					 *		:: %s: requires %s, provided by %s
 					 */
 					printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss),
-							alpm_dep_get_name(dep));
-					switch(alpm_dep_get_mod(dep)) {
-						case PM_DEP_MOD_ANY:
-							break;
-						case PM_DEP_MOD_EQ:
-							printf("=%s", alpm_dep_get_version(dep));
-							break;
-						case PM_DEP_MOD_GE:
-							printf(">=%s", alpm_dep_get_version(dep));
-							break;
-						case PM_DEP_MOD_LE:
-							printf("<=%s", alpm_dep_get_version(dep));
-							break;
-					}
-					printf("\n");
+							depstring);
+					free(depstring);
 				}
 				break;
 			case PM_ERR_CONFLICTING_DEPS:
diff --git a/src/pacman/remove.c b/src/pacman/remove.c
index 860bf491..dce479ec 100644
--- a/src/pacman/remove.c
+++ b/src/pacman/remove.c
@@ -129,8 +129,10 @@ int pacman_remove(alpm_list_t *targets)
 				for(i = data; i; i = alpm_list_next(i)) {
 					pmdepmissing_t *miss = alpm_list_getdata(i);
 					pmdepend_t *dep = alpm_miss_get_dep(miss);
+					char *depstring = alpm_dep_get_string(dep);
 					printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss),
-							alpm_dep_get_name(dep));
+							depstring);
+					free(depstring);
 				}
 				alpm_list_free(data);
 				break;
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index 30834a10..9e4b0ada 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -559,22 +559,10 @@ int sync_trans(alpm_list_t *targets, int sync_only)
 				for(i = data; i; i = alpm_list_next(i)) {
 					pmdepmissing_t *miss = alpm_list_getdata(i);
 					pmdepend_t *dep = alpm_miss_get_dep(miss);
+					char *depstring = alpm_dep_get_string(dep);
 					printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss),
-							alpm_dep_get_name(dep));
-					switch(alpm_dep_get_mod(dep)) {
-						case PM_DEP_MOD_ANY:
-							break;
-						case PM_DEP_MOD_EQ:
-							printf("=%s", alpm_dep_get_version(dep));
-							break;
-						case PM_DEP_MOD_GE:
-							printf(">=%s", alpm_dep_get_version(dep));
-							break;
-						case PM_DEP_MOD_LE:
-							printf("<=%s", alpm_dep_get_version(dep));
-							break;
-					}
-					printf("\n");
+							depstring);
+					free(depstring);
 				}
 				break;
 			case PM_ERR_CONFLICTING_DEPS:
-- 
cgit v1.2.3-70-g09d2