lib/util.c: add function which tests if a given pkgver is reverted by a given pkg.
This commit is contained in:
parent
33032429c2
commit
18204aeac1
@ -1835,6 +1835,19 @@ bool xbps_pkg_arch_match(struct xbps_handle *xhp,
|
||||
*/
|
||||
int xbps_humanize_number(char *buf, int64_t bytes);
|
||||
|
||||
/**
|
||||
* Tests if pkgver is reverted by pkg
|
||||
*
|
||||
* The package version is defined by:
|
||||
* ${VERSION}_${REVISION}.
|
||||
*
|
||||
* @param[in] pkgver a package version string
|
||||
* @param[in] pkg a package which is a candidate to revert pkgver.
|
||||
*
|
||||
* @return 1 if pkg reverts pkgver, 0 otherwise.
|
||||
*/
|
||||
int xbps_pkgver_is_reverted(const char *pkgver, xbps_dictionary_t pkg);
|
||||
|
||||
/**
|
||||
* Compares package version strings.
|
||||
*
|
||||
|
22
lib/util.c
22
lib/util.c
@ -425,3 +425,25 @@ xbps_humanize_number(char *buf, int64_t bytes)
|
||||
return humanize_number(buf, 7, bytes, "B",
|
||||
HN_AUTOSCALE, HN_DECIMAL|HN_NOSPACE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if pkg is explicitly marked to replace a specific installed version.
|
||||
*/
|
||||
int
|
||||
xbps_pkgver_is_reverted(const char *pkgver, xbps_dictionary_t pkg) {
|
||||
unsigned int i;
|
||||
xbps_array_t reverts;
|
||||
const char *revertver;
|
||||
|
||||
if ((reverts = xbps_dictionary_get(pkg, "reverts")) == NULL)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < xbps_array_count(reverts); i++) {
|
||||
xbps_array_get_cstring_nocopy(reverts, i, &revertver);
|
||||
if (strcmp(pkgver, revertver) == 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user