Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 mldemos (0.5.1-3) unstable; urgency=low
 .
   * Address some format string errors.
Author: Barak A. Pearlmutter <bap@debian.org>

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: http://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: <YYYY-MM-DD>

--- mldemos-0.5.1.orig/Core/glwidget.cpp
+++ mldemos-0.5.1/Core/glwidget.cpp
@@ -680,7 +680,21 @@ void GLWidget::DrawLines(const GLObject
     }
 
     glPushMatrix();
+
+    // qreal might be a float, need to account for that here.
+    // No choice but to use the logic in Qt/qglobal.h
+#if defined(QT_COORD_TYPE)
+    // typedef QT_COORD_TYPE qreal;
+    // (which we'll just assume is a double)
+    glMultMatrixd(o.model.constData());
+#elif defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE) || defined(QT_ARCH_SYMBIAN)
+    // typedef float qreal;
+    glMultMatrixf(o.model.constData());
+#else
+    // typedef double qreal;
     glMultMatrixd(o.model.constData());
+#endif
+
     if(o.objectType.contains("linestrip") || o.objectType.contains("trajectories")) glBegin(GL_LINE_STRIP);
     else glBegin(GL_LINES);
     FOR(i, o.vertices.size())
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/KernelMethods/classifierPegasos.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/KernelMethods/classifierPegasos.cpp
@@ -59,14 +59,14 @@ const char *ClassifierPegasos::GetInfoSt
 		sprintf(text, "%s linear", text);
 		break;
 	case 1:
-		sprintf(text, "%s polynomial (deg: %f %f width: %f)", text, kernelDegree, kernelParam);
+		sprintf(text, "%s polynomial (deg: %d width: %f)", text, kernelDegree, kernelParam);
 		break;
 	case 2:
 		sprintf(text, "%s rbf (gamma: %f)", text, kernelParam);
 		break;
 	}
 	sprintf(text, "%slambda: %f\n", text, lambda);
-	sprintf(text, "%sSupport Vectors: %d\n", text, GetSVs().size());
+	sprintf(text, "%sSupport Vectors: %lu\n", text, (unsigned long)GetSVs().size());
 	return text;
 }
 
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/KernelMethods/regressorKRLS.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/KernelMethods/regressorKRLS.cpp
@@ -34,14 +34,14 @@ const char *RegressorKRLS::GetInfoString
 		sprintf(text, "%s linear", text);
 		break;
 	case 1:
-		sprintf(text, "%s polynomial (deg: %f %f width: %f)", text, kernelDegree, kernelParam);
+		sprintf(text, "%s polynomial (deg: %d width: %f)", text, kernelDegree, kernelParam);
 		break;
 	case 2:
 		sprintf(text, "%s rbf (gamma: %f)", text, kernelParam);
 		break;
 	}
 	sprintf(text, "%seps: %f\n", text, epsilon);
-	sprintf(text, "%Basis Functions: %d\n", text, GetSVs().size());
+	sprintf(text, "%sBasis Functions: %lu\n", text, (unsigned long)GetSVs().size());
 	return text;
 }
 
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/KernelMethods/classifierRVM.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/KernelMethods/classifierRVM.cpp
@@ -59,14 +59,14 @@ const char *ClassifierRVM::GetInfoString
 		sprintf(text, "%s linear", text);
 		break;
 	case 1:
-		sprintf(text, "%s polynomial (deg: %f %f width: %f)", text, kernelDegree, kernelParam);
+		sprintf(text, "%s polynomial (deg: %d width: %f)", text, kernelDegree, kernelParam);
 		break;
 	case 2:
 		sprintf(text, "%s rbf (gamma: %f)", text, kernelParam);
 		break;
 	}
 	sprintf(text, "%seps: %f\n", text, epsilon);
-	sprintf(text, "%sRelevant Vectors: %d\n", text, GetSVs().size());
+	sprintf(text, "%sRelevant Vectors: %lu\n", text, (unsigned long)GetSVs().size());
 	return text;
 }
 
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/KernelMethods/clustererKKM.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/KernelMethods/clustererKKM.cpp
@@ -60,7 +60,7 @@ const char *ClustererKKM::GetInfoString(
 		sprintf(text, "%s linear", text);
 		break;
 	case 1:
-		sprintf(text, "%s polynomial (deg: %f %f width: %f)", text, kernelDegree, kernelGamma);
+		sprintf(text, "%s polynomial (deg: %f width: %f)", text, kernelDegree, kernelGamma);
 		break;
 	case 2:
 		sprintf(text, "%s rbf (gamma: %f)", text, kernelGamma);
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/KernelMethods/regressorRVM.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/KernelMethods/regressorRVM.cpp
@@ -33,14 +33,14 @@ const char *RegressorRVM::GetInfoString(
 		sprintf(text, "%s linear", text);
 		break;
 	case 1:
-		sprintf(text, "%s polynomial (deg: %f %f width: %f)", text, kernelDegree, kernelParam);
+		sprintf(text, "%s polynomial (deg: %d width: %f)", text, kernelDegree, kernelParam);
 		break;
 	case 2:
 		sprintf(text, "%s rbf (gamma: %f)", text, kernelParam);
 		break;
 	}
 	sprintf(text, "%seps: %f\n", text, epsilon);
-	sprintf(text, "%sRelevant Vectors: %d\n", text, GetSVs().size());
+	sprintf(text, "%sRelevant Vectors: %lu\n", text, (unsigned long)GetSVs().size());
 	return text;
 }
 
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/KernelMethods/regressorSVR.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/KernelMethods/regressorSVR.cpp
@@ -36,7 +36,7 @@ const char *RegressorSVR::GetInfoString(
         sprintf(text, "%s linear\n", text);
         break;
     case POLY:
-        sprintf(text, "%s polynomial (deg: %f bias: %f width: %f)\n", text, param.degree, param.coef0, param.gamma);
+        sprintf(text, "%s polynomial (deg: %d bias: %f width: %f)\n", text, param.degree, param.coef0, param.gamma);
         break;
     case RBF:
         sprintf(text, "%s rbf (gamma: %f)\n", text, param.gamma);
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/KernelMethods/clustererKM.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/KernelMethods/clustererKM.cpp
@@ -122,7 +122,7 @@ const char *ClustererKM::GetInfoString()
     switch(power)
     {
     case 0:
-        sprintf(text, "%infinite norm\n", text);
+        sprintf(text, "%sinfinite norm\n", text);
         break;
     case 1:
         sprintf(text, "%s1-norm (Manhattan)\n", text);
@@ -131,7 +131,7 @@ const char *ClustererKM::GetInfoString()
         sprintf(text, "%s2-norm (Euclidean)\n", text);
         break;
     default:
-        sprintf(text, "%s%.2f-norm\n", text, power);
+        sprintf(text, "%s%d-norm\n", text, power);
         break;
     }
     return text;
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/GHSOM/projectorGHSOM.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/GHSOM/projectorGHSOM.cpp
@@ -73,7 +73,7 @@ void ProjectorGHSOM::Train(std::vector<
     FOR(d, dim)
     {
         vecDescr[d] = new char[150];
-        sprintf(vecDescr[d], "dim%1", d+1);
+        sprintf(vecDescr[d], "dim%d", d+1);
     }
 
     Globals::vectorDescription = vecDescr;
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/GHSOM/interfaceGHSOM.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/GHSOM/interfaceGHSOM.cpp
@@ -448,7 +448,7 @@ void GHSOMProjector::DrawModel(Canvas *c
             {
                 NeuronLayer *le = layer->elementAt(j);
                 if(!le) continue;
-                printf("\t(%d x %d) units\t0x%x\n", le->getX(), le->getY(), le->getSuperNeuron());
+		printf("\t(%d x %d) units\t0x%lx\n", le->getX(), le->getY(), (unsigned long)le->getSuperNeuron());
                 Neuron ***map = le->getMap();
                 FOR(y, le->getY())
                 {
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/GHSOM/GHSOM/globals.h
+++ mldemos-0.5.1/_AlgorithmsPlugins/GHSOM/GHSOM/globals.h
@@ -44,8 +44,8 @@ public:
 	static int EXPAND_CYCLES;
 //	static int MAX_REPRESENTING;
 	static float TAU_2;
-	static char *HTML_PREFIX;
-	static char *DATAFILE_EXTENSION;
+	static const char *HTML_PREFIX;
+	static const char *DATAFILE_EXTENSION;
 	static Data_Vector *dataItems;
 	static NeuronLayer *hfm;
 	static unsigned int randomSeed;
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/GHSOM/GHSOM/globals.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/GHSOM/GHSOM/globals.cpp
@@ -61,8 +61,8 @@ int Globals::MAX_CYCLES = 0;
 int Globals::EXPAND_CYCLES = 25;
 //int Globals::MAX_REPRESENTING = 3;
 float Globals::TAU_2 = 0.1;
-char *Globals::HTML_PREFIX = "map";
-char *Globals::DATAFILE_EXTENSION = "";
+const char *Globals::HTML_PREFIX = "map";
+const char *Globals::DATAFILE_EXTENSION = "";
 Data_Vector *Globals::dataItems = new Data_Vector();
 NeuronLayer *Globals::hfm = NULL;
 unsigned int Globals::randomSeed = 123456789;
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/DBSCAN/clustererDBSCAN.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/DBSCAN/clustererDBSCAN.cpp
@@ -149,7 +149,7 @@ const char *ClustererDBSCAN::GetInfoStri
         sprintf(text, "OPTICS WP\n\nTraining information: minPts : %d, eps: %f, depth: %f, metric: %d\n",_minPts,_eps,_depth,_metric);
     }
 
-    sprintf(text, "%sNumber of clusters: %d\n",text,_clusters.size());
+    sprintf(text, "%sNumber of clusters: %lu\n",text,(unsigned long)_clusters.size());
 
     int countN = 0;
     int countC = 0;
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/Projections/classifierKPCA.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/Projections/classifierKPCA.cpp
@@ -176,7 +176,7 @@ const char *ClassifierKPCA::GetInfoStrin
   sprintf(text, "%s linear\n", text);
   break;
  case POLY:
-  sprintf(text, "%s polynomial (deg: %f bias: %f width: %f)\n", text, param.degree, param.coef0, param.gamma);
+  sprintf(text, "%s polynomial (deg: %d bias: %f width: %f)\n", text, param.degree, param.coef0, param.gamma);
   break;
  case RBF:
   sprintf(text, "%s rbf (gamma: %f)\n", text, param.gamma);
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/KNN/classifierKNN.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/KNN/classifierKNN.cpp
@@ -189,7 +189,7 @@ const char *ClassifierKNN::GetInfoString
 	switch(metricType)
 	{
 	case 0:
-		sprintf(text, "%infinite norm\n", text);
+		sprintf(text, "%sinfinite norm\n", text);
 		break;
 	case 1:
 		sprintf(text, "%s1-norm (Manhattan)\n", text);
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/KNN/dynamicalKNN.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/KNN/dynamicalKNN.cpp
@@ -244,7 +244,7 @@ const char *DynamicalKNN::GetInfoString(
 	switch(metricType)
 	{
 	case 0:
-		sprintf(text, "%infinite norm\n", text);
+		sprintf(text, "%sinfinite norm\n", text);
 		break;
 	case 1:
 		sprintf(text, "%s1-norm (Manhattan)\n", text);
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/GP/regressorGPR.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/GP/regressorGPR.cpp
@@ -349,7 +349,7 @@ const char *RegressorGPR::GetInfoString(
         sprintf(text, "%s rbf (gamma: %f)\n", text, param1);
         break;
     case 1:
-        sprintf(text, "%s polynomial (deg: %f %f width: %f)\n", text, degree, param1);
+        sprintf(text, "%s polynomial (deg: %d width: %f)\n", text, degree, param1);
         break;
     case 2:
         sprintf(text, "%s rbf (gamma: %f)\n", text, param1);
--- mldemos-0.5.1.orig/_AlgorithmsPlugins/GP/dynamicalGPR.cpp
+++ mldemos-0.5.1/_AlgorithmsPlugins/GP/dynamicalGPR.cpp
@@ -172,14 +172,14 @@ const char *DynamicalGPR::GetInfoString(
 		sprintf(text, "%s rbf (gamma: %f)\n", text, param1);
 		break;
 	case 1:
-		sprintf(text, "%s polynomial (deg: %f %f width: %f)\n", text, degree, param1);
+		sprintf(text, "%s polynomial (deg: %d width: %f)\n", text, degree, param1);
 		break;
 	case 2:
 		sprintf(text, "%s rbf (gamma: %f)\n", text, param1);
 		break;
 	}
 	return text;
-	sprintf(text, "%sNoise: %.3f\n", param2);
+	sprintf(text, "%sNoise: %.3f\n", text, param2);
 	sprintf(text, "%sBasis Functions: %d\n", text, GetBasisCount());
 	return text;
 }
--- mldemos-0.5.1.orig/_3rdParty/JnS/JnS.cpp
+++ mldemos-0.5.1/_3rdParty/JnS/JnS.cpp
@@ -63,21 +63,21 @@ void OutOfMemory()
 
 #define SPACE_PER_LEVEL 3
 
-void Message0(int level, char *mess) {
+void Message0(int level, const char *mess) {
   int count ;
   if (level < VERBOSITY) {
     for (count=0; count<level*SPACE_PER_LEVEL; count++) fprintf(stderr," ");
     fprintf(stderr, "%s", mess);
   }
 }
-void MessageF(int level, char *mess, double value) {
+void MessageF(int level, const char *mess, double value) {
   int count ;
   if (level < VERBOSITY) {
     for (count=0; count<level*SPACE_PER_LEVEL; count++) fprintf(stderr," ");
     fprintf(stderr, mess, value);
   }
 }
-void MessageI(int level, char *mess, int value) {
+void MessageI(int level, const char *mess, int value) {
   int count ;
   if (level < VERBOSITY) {
     for (count=0; count<level*SPACE_PER_LEVEL; count++) fprintf(stderr," ");
--- mldemos-0.5.1.orig/_3rdParty/matio/mat.c
+++ mldemos-0.5.1/_3rdParty/matio/mat.c
@@ -71,12 +71,12 @@ Mat_PrintNumber(enum matio_types type, v
             break;
 #ifdef HAVE_MAT_INT64_T
         case MAT_T_INT64:
-            printf("%lld",*(mat_int64_t*)data);
+            printf("%lld",(long long int)*(mat_int64_t*)data);
             break;
 #endif
 #ifdef HAVE_MAT_UINT64_T
         case MAT_T_UINT64:
-            printf("%llu",*(mat_uint64_t*)data);
+            printf("%llu",(long long unsigned int)*(mat_uint64_t*)data);
             break;
 #endif
         case MAT_T_INT32:
