From 9454b8bca10f2ac8e224b9d60d71355b36194555 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Fri, 2 Apr 2004 00:41:10 +0000 Subject: [project @ 2004-04-02 00:41:10 by jmb] Try to use external apps for URI schemes we don't understand (eg mailto:) svn path=/import/netsurf/; revision=698 --- riscos/uri.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'riscos/uri.c') diff --git a/riscos/uri.c b/riscos/uri.c index ae13ba0ea..4e0205391 100644 --- a/riscos/uri.c +++ b/riscos/uri.c @@ -5,6 +5,7 @@ * Copyright 2003 Rob Jackson */ +#include #include #include #include "oslib/uri.h" @@ -14,12 +15,17 @@ #include "netsurf/riscos/theme.h" #include "netsurf/desktop/gui.h" #include "netsurf/riscos/gui.h" +#include "netsurf/riscos/url_protocol.h" #include "netsurf/utils/log.h" #include "netsurf/utils/utils.h" #ifdef WITH_URI void ro_uri_message_received(uri_full_message_process*); +bool ro_uri_launch(char *uri); +void ro_uri_bounce(uri_full_message_return_result*); + +extern wimp_t task_handle; void ro_uri_message_received(uri_full_message_process* uri_message) @@ -61,4 +67,36 @@ void ro_uri_message_received(uri_full_message_process* uri_message) xfree(uri_requested); } + +bool ro_uri_launch(char *uri) { + + uri_h uri_handle; + wimp_t handle_task; + uri_dispatch_flags returned; + os_error *e; + + e = xuri_dispatch(0, uri, task_handle, &returned, &handle_task, &uri_handle); + + if (e || returned & 1) { + return false; + } + + return true; +} + +void ro_uri_bounce(uri_full_message_return_result *message) { + + char uri_buf[512]; + os_error *e; + + if ((message->flags & 1) == 0) return; + + e = xuri_request_uri(0, uri_buf, sizeof uri_buf, message->handle, 0); + + if (e) return; + + ro_url_load(uri_buf); + + return; +} #endif -- cgit v1.2.3