diff --git a/lib/utils/mu-util.c b/lib/utils/mu-util.c index f0515789..353a26c2 100644 --- a/lib/utils/mu-util.c +++ b/lib/utils/mu-util.c @@ -532,7 +532,7 @@ mu_util_read_password (const char *prompt) */ gchar * mu_canonicalize_filename (const gchar *filename, - const gchar *relative_to) + const gchar *relative_to) { gchar *canon, *start, *p, *q; guint i; diff --git a/lib/utils/mu-utils.cc b/lib/utils/mu-utils.cc index 32a17852..59ece80b 100644 --- a/lib/utils/mu-utils.cc +++ b/lib/utils/mu-utils.cc @@ -33,7 +33,7 @@ #include #include "mu-utils.hh" - +#include "mu-util.h" using namespace Mu; @@ -447,6 +447,21 @@ Mu::size_to_string (const std::string& val, bool is_first) return str; } + +std::string +Mu::canonicalize_filename(const std::string& path, const std::string& relative_to) +{ + char *fname = mu_canonicalize_filename ( + path.c_str(), + relative_to.empty() ? NULL : relative_to.c_str()); + + std::string rv{fname}; + g_free (fname); + + return rv; +} + + void Mu::assert_equal(const std::string& s1, const std::string& s2) { diff --git a/lib/utils/mu-utils.hh b/lib/utils/mu-utils.hh index 63f9f002..fe8ff301 100644 --- a/lib/utils/mu-utils.hh +++ b/lib/utils/mu-utils.hh @@ -131,6 +131,16 @@ constexpr int64_t to_s (Duration d) { return to_unit(d); constexpr int64_t to_ms (Duration d) { return to_unit(d); } constexpr int64_t to_us (Duration d) { return to_unit(d); } +/** + * See g_canonicalize_filename + * + * @param filename + * @param relative_to + * + * @return + */ +std::string canonicalize_filename(const std::string& path, const std::string& relative_to); + /** * Convert a size string to a size in bytes * @@ -205,8 +215,6 @@ private: const bool color_; }; - - /** * * don't repeat these catch blocks everywhere...