summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2023-03-28 20:58:11 +0300
committerDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2023-04-02 09:25:43 +0300
commit15777abe3cbc82b9d4203e4833ab4e2b9be3e8bb (patch)
tree2c56aaec06d974aa15249869645b0ba442179391
parent91bcd0a25bbe587dc3acca5b6b5764db35222aa7 (diff)
mu: mu-view: don't insist on absolute path
Make it absolute so make_from_path can deal with it.
-rw-r--r--mu/mu-cmd.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/mu/mu-cmd.cc b/mu/mu-cmd.cc
index 3f8a7c9..0f4af1a 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());