summaryrefslogtreecommitdiff
path: root/src/version.c
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-06-20 12:38:07 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2009-06-20 12:38:07 +0200
commit4bbed2d648fcb98c613f88c1ced418e771407f84 (patch)
tree954e208e3ca77098483c15cf94de2a55ffd8d7a5 /src/version.c
parentcb074581f0d65bc43188d3552dd72c405c53e5d9 (diff)
downloadapk-tools-4bbed2d648fcb98c613f88c1ced418e771407f84.tar.gz
apk-tools-4bbed2d648fcb98c613f88c1ced418e771407f84.tar.bz2
apk-tools-4bbed2d648fcb98c613f88c1ced418e771407f84.tar.xz
apk-tools-4bbed2d648fcb98c613f88c1ced418e771407f84.zip
ver: only compare the given packages, show version
make apk_version_compare() take strings rather than blobs add apk_pkgversion_compare(), a wrapper that takes packages
Diffstat (limited to 'src/version.c')
-rw-r--r--src/version.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/version.c b/src/version.c
index c270f68..57f9a22 100644
--- a/src/version.c
+++ b/src/version.c
@@ -174,16 +174,20 @@ int apk_version_validate(apk_blob_t ver)
return t == TOKEN_END;
}
-int apk_version_compare(apk_blob_t a, apk_blob_t b)
+int apk_version_compare(const char *str1, const char *str2)
{
int at = TOKEN_DIGIT, bt = TOKEN_DIGIT;
int av = 0, bv = 0;
+ apk_blob_t a, b;
- if (APK_BLOB_IS_NULL(a) || APK_BLOB_IS_NULL(b)) {
- if (APK_BLOB_IS_NULL(a) && APK_BLOB_IS_NULL(b))
+ if (str1 == NULL || str2 == NULL) {
+ if (str1 == NULL && str2 == NULL)
return APK_VERSION_EQUAL;
return APK_VERSION_EQUAL | APK_VERSION_GREATER | APK_VERSION_LESS;
}
+
+ a = APK_BLOB_STR(str1);
+ b = APK_BLOB_STR(str2);
while (at == bt && at != TOKEN_END && at != TOKEN_INVALID && av == bv) {
av = get_token(&at, &a);