Skip to content

Commit

Permalink
store: removing trailing / for root_maildir
Browse files Browse the repository at this point in the history
Other code depends on that.
  • Loading branch information
djcb committed Jul 6, 2023
1 parent 75a2cab commit 4171fe1
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
16 changes: 13 additions & 3 deletions lib/mu-store.cc
Original file line number Diff line number Diff line change
Expand Up @@ -52,22 +52,32 @@ static_assert(std::is_same<Store::Id, Xapian::docid>::value, "wrong type for Sto
// Properties
constexpr auto ExpectedSchemaVersion = MU_STORE_SCHEMA_VERSION;

static std::string
remove_slash(const std::string& str)
{
auto clean{str};
while (clean[clean.length() - 1] == '/')
clean.pop_back();

return clean;
}

struct Store::Private {

Private(const std::string& path, bool readonly):
xapian_db_{make_db(path, readonly ? XapianDb::Flavor::ReadOnly
: XapianDb::Flavor::Open)},
config_{xapian_db_},
contacts_cache_{config_},
root_maildir_{config_.get<Config::Id::RootMaildir>()}
root_maildir_{remove_slash(config_.get<Config::Id::RootMaildir>())}
{}

Private(const std::string& path, const std::string& root_maildir,
Option<const Config&> conf):
xapian_db_{make_db(path, XapianDb::Flavor::CreateOverwrite)},
config_{make_config(xapian_db_, root_maildir, conf)},
contacts_cache_{config_},
root_maildir_{config_.get<Config::Id::RootMaildir>()}
root_maildir_{remove_slash(config_.get<Config::Id::RootMaildir>())}
{}

~Private() try {
Expand Down Expand Up @@ -123,7 +133,7 @@ struct Store::Private {
if (conf)
config.import_configurable(*conf);

config.set<Config::Id::RootMaildir>(root_maildir);
config.set<Config::Id::RootMaildir>(remove_slash(root_maildir));
config.set<Config::Id::SchemaVersion>(ExpectedSchemaVersion);

return config;
Expand Down
4 changes: 3 additions & 1 deletion lib/tests/test-mu-store-query.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ static Store
make_test_store(const std::string& test_path, const TestMap& test_map,
const StringVec &personal_addresses)
{
std::string maildir = test_path + "/Maildir";
std::string maildir = test_path + "/Maildir/";
// note the trailing '/'
g_test_bug("2513");

/* write messages to disk */
for (auto&& item: test_map) {
Expand Down

0 comments on commit 4171fe1

Please sign in to comment.