From e1ec65bd53db811bfc66d92346519c43a06b65c7 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Sun, 15 Dec 2013 17:05:18 +0100
Subject: UriUtil: add function uri_get_scheme()

Replaces g_uri_parse_scheme().
---
 src/util/UriUtil.cxx | 10 ++++++++++
 src/util/UriUtil.hxx |  7 +++++++
 2 files changed, 17 insertions(+)

(limited to 'src/util')

diff --git a/src/util/UriUtil.cxx b/src/util/UriUtil.cxx
index 7997bd5c9..89d2a473a 100644
--- a/src/util/UriUtil.cxx
+++ b/src/util/UriUtil.cxx
@@ -27,6 +27,16 @@ bool uri_has_scheme(const char *uri)
 	return strstr(uri, "://") != nullptr;
 }
 
+std::string
+uri_get_scheme(const char *uri)
+{
+	const char *end = strstr(uri, "://");
+	if (end == nullptr)
+		end = uri;
+
+	return std::string(uri, end);
+}
+
 /* suffixes should be ascii only characters */
 const char *
 uri_get_suffix(const char *uri)
diff --git a/src/util/UriUtil.hxx b/src/util/UriUtil.hxx
index 78d0a6bff..20e468103 100644
--- a/src/util/UriUtil.hxx
+++ b/src/util/UriUtil.hxx
@@ -31,6 +31,13 @@
 gcc_pure
 bool uri_has_scheme(const char *uri);
 
+/**
+ * Returns the scheme name of the specified URI, or an empty string.
+ */
+gcc_pure
+std::string
+uri_get_scheme(const char *uri);
+
 gcc_pure
 const char *
 uri_get_suffix(const char *uri);
-- 
cgit v1.2.3