[gimp] app: fixed version checks for babl and GEGL



commit 9afa690a741332646328800ac0379261a347b21c
Author: Sven Neumann <sven gimp org>
Date:   Thu May 21 13:37:17 2009 +0200

    app: fixed version checks for babl and GEGL
    
    The version checks for babl and GEGL did not cope correctly with the
    minor version upgrade. This change fixes this by introducing a generic
    version check.
---
 app/sanity.c |   35 +++++++++++++++++++++++++++++------
 1 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/app/sanity.c b/app/sanity.c
index c0ae257..2bde12a 100644
--- a/app/sanity.c
+++ b/app/sanity.c
@@ -73,6 +73,29 @@ sanity_check (void)
 
 /*  private functions  */
 
+static gboolean
+sanity_check_version (guint major_version, guint required_major,
+                      guint minor_version, guint required_minor,
+                      guint micro_version, guint required_micro)
+{
+  if (major_version > required_major)
+    return TRUE;
+
+  if (major_version < required_major)
+    return FALSE;
+
+  if (minor_version > required_minor)
+    return TRUE;
+
+  if (minor_version < required_minor)
+    return FALSE;
+
+  if (micro_version >= required_micro)
+    return TRUE;
+
+  return FALSE;
+}
+
 static gchar *
 sanity_check_gimp (void)
 {
@@ -264,9 +287,9 @@ sanity_check_babl (void)
                     &babl_minor_version,
                     &babl_micro_version);
 
-  if (babl_major_version < BABL_REQUIRED_MAJOR ||
-      babl_minor_version < BABL_REQUIRED_MINOR ||
-      babl_micro_version < BABL_REQUIRED_MICRO)
+  if (! sanity_check_version (babl_major_version, BABL_REQUIRED_MAJOR,
+                              babl_minor_version, BABL_REQUIRED_MINOR,
+                              babl_micro_version, BABL_REQUIRED_MICRO))
     {
       return g_strdup_printf
         ("BABL version too old!\n\n"
@@ -302,9 +325,9 @@ sanity_check_gegl (void)
                     &gegl_minor_version,
                     &gegl_micro_version);
 
-  if (gegl_major_version < GEGL_REQUIRED_MAJOR ||
-      gegl_minor_version < GEGL_REQUIRED_MINOR ||
-      gegl_micro_version < GEGL_REQUIRED_MICRO)
+  if (! sanity_check_version (gegl_major_version, GEGL_REQUIRED_MAJOR,
+                              gegl_minor_version, GEGL_REQUIRED_MINOR,
+                              gegl_micro_version, GEGL_REQUIRED_MICRO))
     {
       return g_strdup_printf
         ("GEGL version too old!\n\n"



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]