summaryrefslogtreecommitdiff
path: root/desktop/searchweb.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2013-02-14 18:21:11 +0000
committerVincent Sanders <vince@netsurf-browser.org>2013-02-18 11:23:48 +0000
commitb112dec78d5e8289ded3f61db96e495690ae96b5 (patch)
tree9babaed21ed2eb841b8d398e28814544c73656d9 /desktop/searchweb.c
parent3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8 (diff)
downloadnetsurf-b112dec78d5e8289ded3f61db96e495690ae96b5.tar.gz
netsurf-b112dec78d5e8289ded3f61db96e495690ae96b5.tar.bz2
change browser_window_create and refactor all callsites
Diffstat (limited to 'desktop/searchweb.c')
-rw-r--r--desktop/searchweb.c30
1 files changed, 24 insertions, 6 deletions
diff --git a/desktop/searchweb.c b/desktop/searchweb.c
index 93694058a..4b97ca82c 100644
--- a/desktop/searchweb.c
+++ b/desktop/searchweb.c
@@ -59,14 +59,32 @@ static nserror search_web_ico_callback(hlcache_handle *ico,
bool search_web_new_window(struct browser_window *bw, const char *searchterm)
{
char *encsearchterm;
- char *url;
- if (url_escape(searchterm,0, true, NULL, &encsearchterm) !=
- URL_FUNC_OK)
+ char *urltxt;
+ nsurl *url;
+ nserror error;
+
+ if (url_escape(searchterm,0, true, NULL, &encsearchterm) != URL_FUNC_OK)
return false;
- url = search_web_get_url(encsearchterm);
+
+ urltxt = search_web_get_url(encsearchterm);
free(encsearchterm);
- browser_window_create(url, bw, NULL, true, true);
- free(url);
+
+ error = nsurl_create(urltxt, &url);
+ if (error == NSERROR_OK) {
+ error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE |
+ BROWSER_WINDOW_GO_FLAG_HISTORY |
+ BROWSER_WINDOW_GO_FLAG_TAB,
+ url,
+ NULL,
+ bw,
+ NULL);
+ nsurl_unref(url);
+ }
+ if (error != NSERROR_OK) {
+ warn_user(messages_get_errorcode(error), 0);
+ }
+
+ free(urltxt);
return true;
}