diff --git a/lib/message/mu-message-file.cc b/lib/message/mu-message-file.cc index 41861608..6067f622 100644 --- a/lib/message/mu-message-file.cc +++ b/lib/message/mu-message-file.cc @@ -105,14 +105,16 @@ Mu::flags_from_path(const std::string& path) /* it's cur/ message, so parse the file name */ const auto parts{message_file_parts(dirfile->file)}; auto flags{flags_from_absolute_expr(parts.flags_suffix, - true/*ignore invalid*/)}; + true/*ignore invalid*/)}; if (!flags) { /* LCOV_EXCL_START*/ return Err(Error{Error::Code::InvalidArgument, "invalid flags ('%s')", parts.flags_suffix.c_str()}); /* LCOV_EXCL_STOP*/ - } else - return Ok(std::move(flags.value())); + } + + /* of course, only _file_ flags are allowed */ + return Ok(flags_filter(flags.value(), MessageFlagCategory::Mailfile)); } diff --git a/lib/tests/test-mu-msg.cc b/lib/tests/test-mu-msg.cc index ae7a665c..cd3ec40e 100644 --- a/lib/tests/test-mu-msg.cc +++ b/lib/tests/test-mu-msg.cc @@ -169,7 +169,7 @@ test_mu_msg_flags(void) (Flags::Flagged | Flags::Seen | Flags::HasAttachment)}, {MU_TESTMAILDIR4 "/special!2,Sabc", - (Flags::Seen|Flags::HasAttachment)} + (Flags::Seen)} }}; for (auto&& test: tests) {