From d5f345fd63d12e7ce65f7417b4ca7e7df8205dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Techet?= Date: Tue, 17 Oct 2023 16:26:00 +0200 Subject: [PATCH] updatechecker: Fix logic comparing version numbers The condition is wrong and for version 2.0 it will constantly report there's an update available when upgrading from 1.x (where x > 0). --- updatechecker/src/updatechecker.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/updatechecker/src/updatechecker.c b/updatechecker/src/updatechecker.c index 9b2423725..af6674f27 100644 --- a/updatechecker/src/updatechecker.c +++ b/updatechecker/src/updatechecker.c @@ -166,16 +166,22 @@ version_compare(const gchar *current_version) parse_version_string(current_version, &geany_current.major, &geany_current.minor, &geany_current.mini, &geany_current.extra); - if ((geany_running.major < geany_current.major) || - (geany_running.minor < geany_current.minor) || - (geany_running.minor < geany_current.minor)) - { + if (geany_running.major < geany_current.major) return TRUE; - } - else - { + if (geany_running.major > geany_current.major) return FALSE; - } + + if (geany_running.minor < geany_current.minor) + return TRUE; + if (geany_running.minor > geany_current.minor) + return FALSE; + + if (geany_running.mini < geany_current.mini) + return TRUE; + if (geany_running.mini > geany_current.mini) + return FALSE; + + return FALSE; }