reapack

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

commit 5b47942a860843865db4df94d55157bb411f56cc
parent 4bd7dfd61c38876b7e0050ca5001ab3100dffaba
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Wed,  6 Sep 2017 21:38:59 -0400

path: fix appending an absolute path to any empty path resulting in an relative path

Diffstat:
Msrc/path.cpp | 3+++
Mtest/path.cpp | 9++++++++-
2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/path.cpp b/src/path.cpp @@ -97,6 +97,9 @@ void Path::append(const string &input, const bool traversal) void Path::append(const Path &o) { + if(m_parts.empty() && o.absolute()) + m_absolute = true; + m_parts.insert(m_parts.end(), o.m_parts.begin(), o.m_parts.end()); } diff --git a/test/path.cpp b/test/path.cpp @@ -151,13 +151,20 @@ TEST_CASE("absolute path (unix)", M) { CHECK_FALSE(Path("a/b").absolute()); const Path a("/usr/bin/zsh"); - REQUIRE(a.size() == 3); REQUIRE(a.absolute()); REQUIRE(a[0] == "usr"); REQUIRE(a.join() == "/usr/bin/zsh"); } +TEST_CASE("append absolute path (unix)", M) { + Path path; + path += Path("/a/b"); + + CHECK(path == Path("/a/b")); + REQUIRE(path.absolute()); +} + TEST_CASE("compare absolute to relative path (unix)", M) { REQUIRE(Path("/a/b") != Path("a/b")); }