diff options
Diffstat (limited to 'lib/libalpm')
| -rw-r--r-- | lib/libalpm/conflict.c | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index c093705a..3442902c 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -251,10 +251,7 @@ static alpm_list_t *chk_filedifference(alpm_list_t *filesA, alpm_list_t *filesB)  	alpm_list_t *ret = NULL;  	alpm_list_t *pA = filesA, *pB = filesB; -	if(pB == NULL) { -		return(alpm_list_strdup(pA)); -	} - +	/* if both filesA and filesB have entries, do this loop */  	while(pA && pB) {  		const char *strA = pA->data;  		const char *strB = pB->data; @@ -279,6 +276,15 @@ static alpm_list_t *chk_filedifference(alpm_list_t *filesA, alpm_list_t *filesB)  			}  	  }  	} +	/* ensure we have completely emptied pA */ +	while(pA) { +		const char *strA = pA->data; +		/* skip directories */ +		if(strA[strlen(strA)-1] != '/') { +			ret = alpm_list_add(ret, strdup(strA)); +		} +		pA = pA->next; +	}  	return(ret);  }  | 
