From f5a41502f52ad3e26f5d5a11d58869cf37f12e7b Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Fri, 20 May 2011 10:37:40 -0400 Subject: moved load_uri_imp into cmd_load_uri (the only place it was used) --- src/callbacks.c | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'src/callbacks.c') diff --git a/src/callbacks.c b/src/callbacks.c index 853edb2..7830032 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -112,7 +112,46 @@ cmd_set_status() { void cmd_load_uri() { - load_uri_imp (uzbl.state.uri); + const gchar *uri = uzbl.state.uri; + + GString* newuri; + SoupURI* soup_uri; + + /* Strip leading whitespaces */ + while (*uri) { + if (!isspace(*uri)) break; + uri++; + } + + if (g_strstr_len (uri, 11, "javascript:") != NULL) { + eval_js(uzbl.gui.web_view, uri, NULL, "javascript:"); + return; + } + + newuri = g_string_new (uri); + soup_uri = soup_uri_new(uri); + + if (!soup_uri) { + gchar* fullpath; + if (g_path_is_absolute (newuri->str)) + fullpath = newuri->str; + else { + gchar* wd = g_get_current_dir (); + fullpath = g_build_filename (wd, newuri->str, NULL); + g_free(wd); + } + struct stat stat_result; + if (! g_stat(fullpath, &stat_result)) + g_string_printf (newuri, "file://%s", fullpath); + else + g_string_prepend (newuri, "http://"); + } else { + soup_uri_free(soup_uri); + } + + /* if we do handle cookies, ask our handler for them */ + webkit_web_view_load_uri (uzbl.gui.web_view, newuri->str); + g_string_free (newuri, TRUE); } void -- cgit v1.2.3