diff options
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); |