diff --git a/mu/mu-cmd.cc b/mu/mu-cmd.cc index 3f8a7c9c..0f4af1a7 100644 --- a/mu/mu-cmd.cc +++ b/mu/mu-cmd.cc @@ -156,7 +156,12 @@ handle_msg(const std::string& fname, const Options& opts) { using Format = Options::View::Format; - auto message{Message::make_from_path(fname, message_options(opts.view))}; + // make absolute. + const auto fpath{to_string_opt_gchar(g_canonicalize_filename(fname.c_str(), NULL))}; + if (!fpath) + return Err(Error::Code::File, "invalid file '%s'", fname.c_str()); + + auto message{Message::make_from_path(*fpath, message_options(opts.view))}; if (!message) return Err(message.error());