]> git.sven.stormbind.net Git - sven/vym.git/blob - version.cpp
Import Upstream version 2.6.11
[sven/vym.git] / version.cpp
1 #include "version.h"
2
3 #include <QDebug>
4 #include <QRegExp>
5
6 bool versionLowerThanVym (const QString &v)
7 {
8     // returns true, if Version v <  VYM_VERSION
9     if (v == __VYM_VERSION) 
10         return false;
11     else
12         return  versionLowerOrEqualThanVym(v);
13 }
14
15
16 bool versionLowerOrEqualThanVym (const QString &v)
17 {
18     // returns true, if Version v <=  VYM_VERSION
19     return versionLowerOrEqual (v,__VYM_VERSION);
20 }
21
22
23 bool versionLowerOrEqual (const QString &v, const QString &vstatic)
24 {
25     // returns true, if version v <= vstatic
26     bool ok = false;
27     int v1  = 0;
28     int v2  = 0;
29     int v3  = 0;
30     int vs1 = 0;
31     int vs2 = 0;
32     int vs3 = 0;
33
34     QRegExp rx("(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})");
35     int pos = rx.indexIn (v);
36     if (pos > -1)
37     {
38         v1 = rx.cap(1).toInt(&ok);
39         if (ok) v2 = rx.cap(2).toInt(&ok);
40         if (ok) v3 =rx.cap(3).toInt(&ok);
41     } 
42
43     pos=rx.indexIn (vstatic);
44     if (ok && pos>-1)
45     {
46         vs1=rx.cap(1).toInt(&ok);
47         if (ok) vs2=rx.cap(2).toInt(&ok);
48         if (ok) vs3=rx.cap(3).toInt(&ok);
49     } 
50
51     if (!ok) 
52     {
53         qWarning ()<<QString ("Warning: Checking version failed: v=%1  vstatic=%2").arg(v).arg(vstatic);
54         return false;
55     }   
56     
57     if (vs1 > v1) return true;
58     if (vs1 < v1) return false;
59     if (vs2 > v2) return true;
60     if (vs2 < v2) return false;
61     if (vs3 > v3) return true;
62     if (vs3 < v3) return false;
63     return true;    
64
65 }