From 06b34a53c2c7af02fbc673d53b5c13f40c2933a6 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Mon, 16 Dec 2019 01:47:12 +0100 Subject: Add tests on badwolf_ensure_uri_scheme --- uri.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 uri.c (limited to 'uri.c') diff --git a/uri.c b/uri.c new file mode 100644 index 0000000..bc2bc01 --- /dev/null +++ b/uri.c @@ -0,0 +1,39 @@ +// BadWolf: Minimalist and privacy-oriented WebKitGTK+ browser +// Copyright © 2019 Haelwenn (lanodan) Monnier +// SPDX-License-Identifier: BSD-3-Clause + +#include "uri.h" + +#include /* g_fprintf() */ +#include /* soup* */ +#include /* access() */ + +const gchar * +badwolf_ensure_uri_scheme(const gchar *text, gboolean try_file) +{ + const gchar *fallback = "about:blank"; + SoupURI *uri; + + uri = soup_uri_new(text); + if(!uri) return fallback; + + //g_fprintf(stderr, "uri->scheme = %s, uri->path = %s\n", uri->scheme, uri->path); + + if(!uri->path) + { + soup_uri_free(uri); + return fallback; + } + + if(uri->scheme) + { + soup_uri_free(uri); + return text; + } + + soup_uri_free(uri); + + if(try_file && (access(text, R_OK) == 0)) return g_strdup_printf("file://%s", text); + + return g_strdup_printf("http://%s", text); +} -- cgit v1.3.1-23-gd82d