diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2009-06-20 12:38:07 +0200 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2009-06-20 12:38:07 +0200 |
commit | 4bbed2d648fcb98c613f88c1ced418e771407f84 (patch) | |
tree | 954e208e3ca77098483c15cf94de2a55ffd8d7a5 /src/version.c | |
parent | cb074581f0d65bc43188d3552dd72c405c53e5d9 (diff) | |
download | apk-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.c | 10 |
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); |