[rkward-cvs] SF.net SVN: rkward-code:[4501] trunk/rkward/rkward/rbackend/rksessionvars. cpp
tfry at users.sf.net
tfry at users.sf.net
Wed Jan 23 18:42:12 UTC 2013
Revision: 4501
http://sourceforge.net/p/rkward/code/4501
Author: tfry
Date: 2013-01-23 18:42:10 +0000 (Wed, 23 Jan 2013)
Log Message:
-----------
Fix version parsing
Modified Paths:
--------------
trunk/rkward/rkward/rbackend/rksessionvars.cpp
Modified: trunk/rkward/rkward/rbackend/rksessionvars.cpp
===================================================================
--- trunk/rkward/rkward/rbackend/rksessionvars.cpp 2013-01-21 11:11:23 UTC (rev 4500)
+++ trunk/rkward/rkward/rbackend/rksessionvars.cpp 2013-01-23 18:42:10 UTC (rev 4501)
@@ -48,34 +48,38 @@
quint32 ret = 0;
int pos = -1;
int opos = 0;
- for (int i = 3; i > 0; --i) {
- ++pos;
- if (!version[pos].isDigit ()) {
- int val = version.mid (pos, pos - opos).toInt ();
- if ((val < 0) || (val > 255) || (pos == opos)) {
- RK_DEBUG (MISC, DL_ERROR, "Invalid version specification '%s'", qPrintable (version));
- if (val > 255) val = 255;
- else val = 0;
+ for (int i = 3; i >= 0; --i) {
+ while (1) {
+ ++pos;
+ if (!(pos < version.size () && version[pos].isDigit ())) {
+ int val = version.mid (opos, pos - opos).toInt ();
+ if ((val < 0) || (val > 255) || (pos == opos)) {
+ RK_DEBUG (MISC, DL_ERROR, "Invalid version specification '%s'", qPrintable (version));
+ if (val > 255) val = 255;
+ else val = 0;
+ }
+ ret += val << (8 * i);
+ if ((pos < version.size ()) && (version[pos] == '.')) {
+ opos = pos + 1;
+ break;
+ }
+ opos = pos;
+ i = -1;
+ break;
}
- ret += val << (8 * i);
- if (version[pos] == '.') {
- opos = pos + 1;
- continue;
- }
- opos = pos;
- break;
}
}
if (opos < (version.size () - 1)) {
if (suffix) *suffix = version.mid (opos);
else RK_DEBUG (MISC, DL_WARNING, "Non numeric portion ('%s') of version specification '%s' will be ignored.", qPrintable (version.mid (opos)), qPrintable (version));
}
+
return ret;
}
int RKSessionVars::compareRKWardVersion (const QString& version) {
if (!rkward_version) {
- rkward_version = parseVersionString (version, &rkward_version_suffix);
+ rkward_version = parseVersionString (RKWARD_VERSION, &rkward_version_suffix);
}
QString suffix;
More information about the rkward-tracker
mailing list