mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-01-29 20:44:25 +00:00
update request string parser validation
This commit is contained in:
parent
bf6287ae72
commit
42afca2aba
@ -193,6 +193,39 @@ void Page::navigation_reload(
|
||||
G_URI_FLAGS_NONE,
|
||||
NULL // @TODO GError *
|
||||
);
|
||||
// Try auto prepend default scheme on fail
|
||||
if (uri == NULL)
|
||||
{
|
||||
uri = g_uri_parse(
|
||||
Glib::ustring::sprintf(
|
||||
"gemini://%s",
|
||||
pageNavigation->get_request_text()
|
||||
).c_str(),
|
||||
G_URI_FLAGS_NONE,
|
||||
NULL // @TODO GError *
|
||||
);
|
||||
|
||||
// Still not parsed, redirect to search provider
|
||||
if (uri == NULL)
|
||||
{
|
||||
// @TODO
|
||||
}
|
||||
|
||||
// URI parsed, redirect
|
||||
else
|
||||
{
|
||||
// Redirect to fixed URI
|
||||
pageNavigation->set_request_text(
|
||||
g_uri_to_string(
|
||||
uri
|
||||
)
|
||||
);
|
||||
|
||||
navigation_reload(
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Reset page data
|
||||
mime = MIME::UNDEFINED;
|
||||
@ -208,29 +241,7 @@ void Page::navigation_reload(
|
||||
|
||||
action__update->activate();
|
||||
|
||||
if (NULL == uri || NULL == g_uri_get_scheme(uri))
|
||||
{
|
||||
// Scheme not found but host provided, redirect to gemini://
|
||||
if (NULL != g_uri_get_host(uri))
|
||||
{
|
||||
pageNavigation->set_request_text(
|
||||
"gemini://" + pageNavigation->get_request_text()
|
||||
);
|
||||
|
||||
navigation_reload(
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
// Make search request
|
||||
else
|
||||
{
|
||||
throw _("Search request not implemented yet"); // @TODO
|
||||
}
|
||||
}
|
||||
|
||||
// Connect scheme driver
|
||||
else
|
||||
// Route to protocol driver by scheme
|
||||
if (g_uri_get_scheme(uri) == Glib::ustring("file"))
|
||||
{
|
||||
// @TODO
|
||||
|
Loading…
x
Reference in New Issue
Block a user