summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2003-12-26 00:17:55 +0000
committerJames Bursa <james@netsurf-browser.org>2003-12-26 00:17:55 +0000
commitf1b59814f8da2f3e235d47adfb332edf8a093b31 (patch)
tree760327fafeb70a0ed342abba3455da00a684eabc /riscos
parent3b4de07169777f6f820f08ac1422e9af901b3ee2 (diff)
downloadnetsurf-f1b59814f8da2f3e235d47adfb332edf8a093b31.tar.gz
netsurf-f1b59814f8da2f3e235d47adfb332edf8a093b31.tar.bz2
[project @ 2003-12-26 00:17:55 by bursa]
New url_join using liburi, <base href=...>. svn path=/import/netsurf/; revision=441
Diffstat (limited to 'riscos')
-rw-r--r--riscos/window.c37
1 files changed, 22 insertions, 15 deletions
diff --git a/riscos/window.c b/riscos/window.c
index e6493ef94..206205a30 100644
--- a/riscos/window.c
+++ b/riscos/window.c
@@ -299,21 +299,14 @@ void gui_window_set_status(gui_window* g, const char* text)
}
-void gui_window_message(gui_window* g, gui_message* msg)
-{
- if (g == NULL || msg == NULL)
- return;
+/**
+ * Set the contents of a window's address bar.
+ */
- switch (msg->type)
- {
- case msg_SET_URL:
- fprintf(stderr, "Set URL '%s'\n", msg->data.set_url.url);
- strncpy(g->url, msg->data.set_url.url, 255);
- wimp_set_icon_state(g->data.browser.toolbar, ICON_TOOLBAR_URL, 0, 0);
- break;
- default:
- break;
- }
+void gui_window_set_url(gui_window *g, char *url)
+{
+ strncpy(g->url, url, 255);
+ wimp_set_icon_state(g->data.browser.toolbar, ICON_TOOLBAR_URL, 0, 0);
}
@@ -712,7 +705,21 @@ bool ro_gui_window_keypress(gui_window *g, int key, bool toolbar)
browser_window_open_location(g->data.browser.bw,
"file:///%3CWimp$ScrapDir%3E/WWW/NetSurf/About");
} else {
- browser_window_open_location(g->data.browser.bw, g->url);
+ char *url = xcalloc(1, 10 + strlen(g->url));
+ char *url2;
+ if (g->url[strspn(g->url, "abcdefghijklmnopqrstuvwxyz")] != ':') {
+ strcpy(url, "http://");
+ strcpy(url + 7, g->url);
+ } else {
+ strcpy(url, g->url);
+ }
+ url2 = url_join(url, 0);
+ free(url);
+ if (url2) {
+ gui_window_set_url(g, url2);
+ browser_window_open_location(g->data.browser.bw, url2);
+ free(url2);
+ }
}
return true;