summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--options/path.c11
-rw-r--r--options/path.h2
2 files changed, 13 insertions, 0 deletions
diff --git a/options/path.c b/options/path.c
index d38aa060af..94b599803e 100644
--- a/options/path.c
+++ b/options/path.c
@@ -231,6 +231,17 @@ bool mp_is_url(bstr path)
return true;
}
+// Return the protocol part of path, e.g. "http" if path is "http://...".
+// On success, out_url (if not NULL) is set to the part after the "://".
+bstr mp_split_proto(bstr path, bstr *out_url)
+{
+ if (!mp_is_url(path))
+ return (bstr){0};
+ bstr r;
+ bstr_split_tok(path, "://", &r, out_url ? out_url : &(bstr){0});
+ return r;
+}
+
void mp_mk_config_dir(struct mpv_global *global, char *subdir)
{
void *tmp = talloc_new(NULL);
diff --git a/options/path.h b/options/path.h
index 4756379fa2..0d23dcbe9b 100644
--- a/options/path.h
+++ b/options/path.h
@@ -75,6 +75,8 @@ bool mp_path_isdir(const char *path);
bool mp_is_url(bstr path);
+bstr mp_split_proto(bstr path, bstr *out_url);
+
void mp_mk_config_dir(struct mpv_global *global, char *subdir);
#endif /* MPLAYER_PATH_H */