diff options
Diffstat (limited to 'lib/libalpm')
| -rw-r--r-- | lib/libalpm/conflict.c | 12 | ||||
| -rw-r--r-- | lib/libalpm/deps.c | 21 | ||||
| -rw-r--r-- | lib/libalpm/deps.h | 1 | 
3 files changed, 25 insertions, 9 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index 9f6ddecb..749cad24 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -75,7 +75,7 @@ PMList *checkconflicts(pmdb_t *db, PMList *packages)  					miss->depend.version[0] = '\0';  					STRNCPY(miss->target, tp->name, PKG_NAME_LEN);  					STRNCPY(miss->depend.name, dp->name, PKG_NAME_LEN); -					if(!pm_list_is_in(miss, baddeps)) { +					if(!dep_isin(miss, baddeps)) {  						_alpm_log(PM_LOG_DEBUG, "checkconflict: targs vs db: adding %s as a conflict for %s",  						          dp->name, tp->name);  						baddeps = pm_list_add(baddeps, miss); @@ -94,7 +94,7 @@ PMList *checkconflicts(pmdb_t *db, PMList *packages)  							miss->depend.version[0] = '\0';  							STRNCPY(miss->target, tp->name, PKG_NAME_LEN);  							STRNCPY(miss->depend.name, dp->name, PKG_NAME_LEN); -							if(!pm_list_is_in(miss, baddeps)) { +							if(!dep_isin(miss, baddeps)) {  								_alpm_log(PM_LOG_DEBUG, "checkconflict: targs vs db: adding %s as a conflict for %s",  								          dp->name, tp->name);  								baddeps = pm_list_add(baddeps, miss); @@ -120,7 +120,7 @@ PMList *checkconflicts(pmdb_t *db, PMList *packages)  					miss->depend.version[0] = '\0';  					STRNCPY(miss->target, tp->name, PKG_NAME_LEN);  					STRNCPY(miss->depend.name, otp->name, PKG_NAME_LEN); -					if(!pm_list_is_in(miss, baddeps)) { +					if(!dep_isin(miss, baddeps)) {  						_alpm_log(PM_LOG_DEBUG, "checkconflict: targs vs targs: adding %s as a conflict for %s",  						          otp->name, tp->name);  						baddeps = pm_list_add(baddeps, miss); @@ -138,7 +138,7 @@ PMList *checkconflicts(pmdb_t *db, PMList *packages)  							miss->depend.version[0] = '\0';  							STRNCPY(miss->target, tp->name, PKG_NAME_LEN);  							STRNCPY(miss->depend.name, otp->name, PKG_NAME_LEN); -							if(!pm_list_is_in(miss, baddeps)) { +							if(!dep_isin(miss, baddeps)) {  								_alpm_log(PM_LOG_DEBUG, "checkconflict: targs vs targs: adding %s as a conflict for %s",  								          otp->name, tp->name);  								baddeps = pm_list_add(baddeps, miss); @@ -165,7 +165,7 @@ PMList *checkconflicts(pmdb_t *db, PMList *packages)  					miss->depend.version[0] = '\0';  					STRNCPY(miss->target, tp->name, PKG_NAME_LEN);  					STRNCPY(miss->depend.name, info->name, PKG_NAME_LEN); -					if(!pm_list_is_in(miss, baddeps)) { +					if(!dep_isin(miss, baddeps)) {  						_alpm_log(PM_LOG_DEBUG, "checkconflict: db vs targs: adding %s as a conflict for %s",  						          info->name, tp->name);  						baddeps = pm_list_add(baddeps, miss); @@ -185,7 +185,7 @@ PMList *checkconflicts(pmdb_t *db, PMList *packages)  								miss->depend.version[0] = '\0';  								STRNCPY(miss->target, tp->name, PKG_NAME_LEN);  								STRNCPY(miss->depend.name, info->name, PKG_NAME_LEN); -								if(!pm_list_is_in(miss, baddeps)) { +								if(!dep_isin(miss, baddeps)) {  									_alpm_log(PM_LOG_DEBUG, "checkconflict: db vs targs: adding %s as a conflict for %s",  									          info->name, tp->name);  									baddeps = pm_list_add(baddeps, miss); diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c index ff6fc505..e7520560 100644 --- a/lib/libalpm/deps.c +++ b/lib/libalpm/deps.c @@ -37,6 +37,21 @@  extern pmhandle_t *handle; +int dep_isin(pmdepmissing_t *needle, PMList *haystack) +{ +	PMList *i; + +	for(i = haystack; i; i = i->next) { +		pmdepmissing_t *miss = i->data; +		if(!memcmp(needle, miss, sizeof(pmdepmissing_t)) +		   && !memcmp(&needle->depend, &miss->depend, sizeof(pmdepend_t))) { +			return(1); +		} +	} + +	return(0); +} +  static pmdepmissing_t *depmissing_new(const char *target, unsigned char type, unsigned char depmod,                                        const char *depname, const char *depversion)  { @@ -225,7 +240,7 @@ PMList *checkdeps(pmdb_t *db, unsigned char op, PMList *packages)  					STRNCPY(miss->target, p->name, PKG_NAME_LEN);  					STRNCPY(miss->depend.name, depend.name, PKG_NAME_LEN);  					STRNCPY(miss->depend.version, depend.version, PKG_VERSION_LEN); -					if(!pm_list_is_in(miss, baddeps)) { +					if(!dep_isin(miss, baddeps)) {  						baddeps = pm_list_add(baddeps, miss);  					} else {  						FREE(miss); @@ -339,7 +354,7 @@ PMList *checkdeps(pmdb_t *db, unsigned char op, PMList *packages)  					STRNCPY(miss->target, tp->name, PKG_NAME_LEN);  					STRNCPY(miss->depend.name, depend.name, PKG_NAME_LEN);  					STRNCPY(miss->depend.version, depend.version, PKG_VERSION_LEN); -					if(!pm_list_is_in(miss, baddeps)) { +					if(!dep_isin(miss, baddeps)) {  						baddeps = pm_list_add(baddeps, miss);  					} else {  						FREE(miss); @@ -363,7 +378,7 @@ PMList *checkdeps(pmdb_t *db, unsigned char op, PMList *packages)  					miss->depend.version[0] = '\0';  					STRNCPY(miss->target, tp->name, PKG_NAME_LEN);  					STRNCPY(miss->depend.name, (char *)j->data, PKG_NAME_LEN); -					if(!pm_list_is_in(miss, baddeps)) { +					if(!dep_isin(miss, baddeps)) {  						baddeps = pm_list_add(baddeps, miss);  					} else {  						FREE(miss); diff --git a/lib/libalpm/deps.h b/lib/libalpm/deps.h index b01314bc..99032833 100644 --- a/lib/libalpm/deps.h +++ b/lib/libalpm/deps.h @@ -36,6 +36,7 @@ typedef struct __pmdepmissing_t {  	pmdepend_t depend;  } pmdepmissing_t; +int dep_isin(pmdepmissing_t *needle, PMList *haystack);  PMList *sortbydeps(PMList *targets, int mode);  PMList *checkdeps(pmdb_t *db, unsigned char op, PMList *packages);  int splitdep(char *depstr, pmdepend_t *depend);  | 
