From: Daniel Carl Date: Sun, 24 Mar 2013 18:49:17 +0000 (+0100) Subject: Moved search handle finding from command_open to vb_load_uri. X-Git-Url: https://git.owens.tech/style.css/style.css/git?a=commitdiff_plain;h=5637ddf4ae08ad763edbb6076ea1f620075b5212;p=vimb.git Moved search handle finding from command_open to vb_load_uri. --- diff --git a/src/command.c b/src/command.c index 0b28043..cf0f227 100644 --- a/src/command.c +++ b/src/command.c @@ -144,30 +144,7 @@ gboolean command_run(const char* name, const char* param) gboolean command_open(const Arg* arg) { - char* uri = NULL; - gboolean result; - - if (!arg->s || arg->s[0] == '\0') { - Arg a = {arg->i, vb.config.home_page}; - return vb_load_uri(&a); - } - /* check for searchengine handles */ - /* split into handle and searchterms */ - char **string = g_strsplit(arg->s, " ", 2); - if (g_strv_length(string) == 2 - && (uri = searchengine_get_uri(string[0])) - ) { - char* term = soup_uri_encode(string[1], "&"); - Arg a = {arg->i, g_strdup_printf(uri, term)}; - result = vb_load_uri(&a); - g_free(term); - g_free(a.s); - } else { - result = vb_load_uri(arg); - } - g_strfreev(string); - - return result; + return vb_load_uri(arg); } /** diff --git a/src/main.c b/src/main.c index 7451cbd..2e9268a 100644 --- a/src/main.c +++ b/src/main.c @@ -137,22 +137,35 @@ gboolean vb_eval_script(WebKitWebFrame* frame, char* script, char* file, char** gboolean vb_load_uri(const Arg* arg) { char* uri; + char* part; char* path = arg->s; struct stat st; if (!path) { - return FALSE; + path = vb.config.home_page; } g_strstrip(path); if (!strlen(path)) { - return FALSE; + path = vb.config.home_page; } /* check if the path is a file path */ if (stat(path, &st) == 0) { char* rp = realpath(path, NULL); uri = g_strdup_printf("file://%s", rp); + } else if (!strchr(path, '.') && (part = strchr(path, ' '))) { + /* look up for a searchengine */ + *part = '\0'; + char* search_uri = searchengine_get_uri(path); + char* term = soup_uri_encode(part + 1, "&"); + + if (search_uri) { + uri = g_strdup_printf(search_uri, term); + } else { + uri = g_strrstr(path, "://") ? g_strdup(path) : g_strdup_printf("http://%s", path); + } + g_free(term); } else { uri = g_strrstr(path, "://") ? g_strdup(path) : g_strdup_printf("http://%s", path); }