reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/version.cpp | 5+++++
Mtest/version.cpp | 5++++-
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) {