[gparted] Improve logic for libparted minimum version check



commit c4e58e037ce175809398a7f1084f7b2bb8d9041a
Author: Curtis Gedak <gedakc gmail com>
Date:   Sat Feb 27 16:28:34 2010 -0700

    Improve logic for libparted minimum version check

 configure.in |   38 ++++++++++++++++++--------------------
 1 files changed, 18 insertions(+), 20 deletions(-)
---
diff --git a/configure.in b/configure.in
index 5086853..1f78e01 100644
--- a/configure.in
+++ b/configure.in
@@ -51,30 +51,28 @@ AC_TRY_RUN(
 
 int main ()
 {
-	int min_major ;
-	int min_minor ;
-	int min_micro ;
-	int major ;
-	int minor ;
-	int micro ;
-
-	if ( sscanf( "$LIBPARTED_VERSION", "%d.%d.%d", &min_major, &min_minor, &min_micro ) == 3 )
+	int min_major = 0;
+	int min_minor = 0;
+	int min_micro = 0;
+	int major = 0;
+	int minor = 0;
+	int micro = 0;
+
+	if ( ( sscanf( "$LIBPARTED_VERSION", "%d.%d.%d", &min_major, &min_minor, &min_micro ) == 3 ) ||
+	     ( sscanf( "$LIBPARTED_VERSION", "%d.%d", &min_major, &min_minor ) == 2 ) ||
+	     ( sscanf( "$LIBPARTED_VERSION", "%d", &min_major ) == 1 )
+	   )
 	{
-		/* Check for libparted three digit version number */
-		if ( sscanf( ped_get_version(), "%d.%d.%d", &major, &minor, &micro ) == 3 )
+		if ( ( sscanf( ped_get_version(), "%d.%d.%d", &major, &minor, &micro ) == 3 ) ||
+		     ( sscanf( ped_get_version(), "%d.%d", &major, &minor ) == 2 ) ||
+		     ( sscanf( ped_get_version(), "%d", &major ) == 1 )
+		   )
 		{
 			printf( "Found libparted %s\t", ped_get_version() ) ;
 			return ! ( (major > min_major) ||
-			           ((major == min_major) && (minor > min_minor)) ||
-			           ((major == min_major) && (minor == min_minor) && (micro >= min_micro)) ) ;
-		}
-
-		/* Check for two digit libparted version number */
-		if ( sscanf( ped_get_version(), "%d.%d", &major, &minor ) == 2 )
-		{
-			printf( "Found libparted %s\t", ped_get_version() ) ;
-			return ! ( (major > min_major) ||
-			           ((major == min_major) && (minor >= min_minor)) ) ;
+			           ( (major == min_major) && (minor > min_minor) ) ||
+			           ( (major == min_major) && (minor == min_minor) && (micro >= min_micro) )
+			         ) ;
 		}
 	}
 



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