aboutsummaryrefslogtreecommitdiffstats
path: root/src/fs/Path.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/fs/Path.cxx')
-rw-r--r--src/fs/Path.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/fs/Path.cxx b/src/fs/Path.cxx
index c063025c8..f04823661 100644
--- a/src/fs/Path.cxx
+++ b/src/fs/Path.cxx
@@ -21,6 +21,7 @@
#include "fs/Path.hxx"
#include "ConfigGlobal.hxx"
#include "system/FatalError.hxx"
+#include "util/Error.hxx"
#include "util/Domain.hxx"
#include "gcc.h"
@@ -89,6 +90,18 @@ Path Path::FromUTF8(const char *path_utf8)
return Path(Donate(), p);
}
+Path
+Path::FromUTF8(const char *path_utf8, Error &error)
+{
+ Path path = FromUTF8(path_utf8);
+ if (path.IsNull())
+ error.Format(path_domain,
+ "Failed to convert to file system charset: %s",
+ path_utf8);
+
+ return path;
+}
+
gcc_pure
static bool
IsSupportedCharset(const char *charset)