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);
|
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.
|
* 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",
|
return humanize_number(buf, 7, bytes, "B",
|
||||||
HN_AUTOSCALE, HN_DECIMAL|HN_NOSPACE);
|
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