From 4cedcce39140926c72f7ff3401ad8835a15116d4 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sun, 31 May 2015 08:47:45 +0100 Subject: [PATCH] Fixed unconditional Bash Tag removal output. In userlists and dumped masterlists. Fixes #444. --- src/backend/generators.cpp | 2 +- src/tests/api/api.h | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/backend/generators.cpp b/src/backend/generators.cpp index af6a7067..7731ab37 100644 --- a/src/backend/generators.cpp +++ b/src/backend/generators.cpp @@ -125,7 +125,7 @@ namespace YAML { if (rhs.IsAddition()) out << rhs.Name(); else - out << '-' << rhs.Name(); + out << ('-' + rhs.Name()); } else { out << BeginMap; diff --git a/src/tests/api/api.h b/src/tests/api/api.h index 47342ff7..4d5df986 100644 --- a/src/tests/api/api.h +++ b/src/tests/api/api.h @@ -28,6 +28,8 @@ along with LOOT. If not, see #include "../../api/api.h" #include "tests/fixtures.h" +#include + TEST(GetVersion, HandlesNullInput) { unsigned int vMajor, vMinor, vPatch; EXPECT_EQ(loot_error_invalid_args, loot_get_version(&vMajor, NULL, NULL)); @@ -641,5 +643,18 @@ TEST_F(OblivionAPIOperationsTest, WriteMinimalList) { EXPECT_EQ(loot_ok, loot_write_minimal_list(db, outputFile.c_str(), true)); EXPECT_TRUE(boost::filesystem::exists(outputFile)); ASSERT_NO_THROW(boost::filesystem::remove(outputFile)); + + // Check that Bash Tag removals get outputted correctly. + bool updated; + ASSERT_EQ(loot_ok, loot_update_masterlist(db, masterlistPath.string().c_str(), "https://github.com/loot/oblivion.git", "master", &updated)); + EXPECT_EQ(loot_ok, loot_load_lists(db, masterlistPath.string().c_str(), NULL)); + EXPECT_EQ(loot_ok, loot_write_minimal_list(db, outputFile.c_str(), false)); + + loot::ifstream in(outputFile); + std::string line; + while (std::getline(in, line)) { + EXPECT_FALSE(boost::contains(line, "- \"-\"")); + } + in.close(); } #endif