commit 9a05cd064ffae63d8d139663d6d75b0cdfe9faae
parent 751f468ae9df49d2cabc28b2201398aadb9da87a
Author: cfillion <cfillion@users.noreply.github.com>
Date: Wed, 13 Jul 2016 00:24:11 -0400
version: handle decimal versions like 1.05 as 1.0.5 instead of 1.5
Diffstat:
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/version.cpp b/src/version.cpp
@@ -74,6 +74,11 @@ void Version::parse(const string &str)
letters++;
}
else {
+ // handle decimal-like version numbers like 1.05 as 1.0.5
+ const size_t leadingZeros = strspn(match.c_str(), "0");
+ if(leadingZeros > 0 && leadingZeros != match.size())
+ segments.insert(segments.end(), leadingZeros, 0);
+
try {
segments.push_back(boost::lexical_cast<Numeric>(match));
}
diff --git a/test/version.cpp b/test/version.cpp
@@ -101,8 +101,11 @@ TEST_CASE("parse version failsafe", M) {
TEST_CASE("decimal version", M) {
Version ver("5.05");
- REQUIRE(ver == Version("5.5"));
+ REQUIRE(ver == Version("5.0.5"));
+ REQUIRE(ver < Version("5.5"));
REQUIRE(ver < Version("5.50"));
+
+ REQUIRE(Version("5.005") == Version("5.0.0.5"));
}
TEST_CASE("5 version segments", M) {