aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/Open.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/Open.cxx')
-rw-r--r--src/input/Open.cxx11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/input/Open.cxx b/src/input/Open.cxx
index 5f3196709..6bcca0b84 100644
--- a/src/input/Open.cxx
+++ b/src/input/Open.cxx
@@ -26,6 +26,7 @@
#include "plugins/RewindInputPlugin.hxx"
#include "fs/Traits.hxx"
#include "fs/Path.hxx"
+#include "fs/AllocatedPath.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
@@ -34,10 +35,14 @@ InputStream::Open(const char *url,
Mutex &mutex, Cond &cond,
Error &error)
{
- if (PathTraitsUTF8::IsAbsolute(url))
- /* TODO: the parameter is UTF-8, not filesystem charset */
- return OpenLocalInputStream(Path::FromFS(url),
+ if (PathTraitsUTF8::IsAbsolute(url)) {
+ const auto path = AllocatedPath::FromUTF8(url, error);
+ if (path.IsNull())
+ return nullptr;
+
+ return OpenLocalInputStream(path,
mutex, cond, error);
+ }
input_plugins_for_each_enabled(plugin) {
InputStream *is;