Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > 2672a25c6227568ed9e766947d9d979f > files > 2

qtparted-0.4.5-25.fc13.src.rpm

diff -ur qtparted-0.4.5.orig/src/qp_libparted.cpp qtparted-0.4.5/src/qp_libparted.cpp
--- qtparted-0.4.5.orig/src/qp_libparted.cpp	2010-10-27 09:49:23.512310852 -0500
+++ qtparted-0.4.5/src/qp_libparted.cpp	2010-10-27 10:10:36.989060856 -0500
@@ -547,15 +547,27 @@
 	int major, minor, micro;
 	const char *version;
 
-	if (!(version = ped_get_version ()) ||   (sscanf(version, "%d.%d.%d", &major, &minor, &micro) != 3)) {
-		printf ("Cannot get parted version\n");
-		QString label = QString(QObject::tr("Cannot get parted version."));
-		QMessageBox::information(NULL, PROG_NAME, label);
-		showDebug("%s", "Cannot get parted version\n");
+    if ( ! ( version = ped_get_version () ) ) //|| ( sscanf ( version, "%d.%d.%d", &major, &minor, &micro ) != 3 ) )
+    {
+	printf ( "Cannot get parted version\n" );
+	QString label = QString ( QObject::tr ( "Cannot get parted version." ) );
+	QMessageBox::information ( 0, PROG_NAME, label );
+	showDebug ( "%s", "Cannot get parted version\n" );
 
 		return false;
 	}
 
+    if(sscanf(version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+	micro = 0;
+	if(sscanf(version, "%d.%d", &major, &minor) != 2) {
+		minor = 0;
+		if(sscanf(version, "%d", &major) != 1) {
+			QMessageBox::information(0, PROG_NAME, tr("Can't identify parted version; claims to be %1").arg(version));
+			return false;
+		}
+	}
+    }
+
 	if ((major > PARTED_REQUESTED_MAJOR) ||
 	   ((major == PARTED_REQUESTED_MAJOR) && (minor > PARTED_REQUESTED_MINOR)) ||
 	   ((major == PARTED_REQUESTED_MAJOR) && (minor == PARTED_REQUESTED_MINOR)