summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2014-10-31 00:24:57 +0000
committerVincent Sanders <vince@kyllikki.org>2014-10-31 00:24:57 +0000
commitce3d99191842ded7687dc23c3ccb5f5ccc843558 (patch)
tree8bf59a56a3b5eadf727068201acd3e8c51bd9dc9 /riscos
parentf995616509fc3c0556da49c915375108bf268f38 (diff)
downloadnetsurf-ce3d99191842ded7687dc23c3ccb5f5ccc843558.tar.gz
netsurf-ce3d99191842ded7687dc23c3ccb5f5ccc843558.tar.bz2
use nsurl_nice and remove url_nice
change all callers over to using new API for generating nice filenames from a url and remove the old API.
Diffstat (limited to 'riscos')
-rw-r--r--riscos/save.c34
-rw-r--r--riscos/save.h4
-rw-r--r--riscos/window.c80
3 files changed, 63 insertions, 55 deletions
diff --git a/riscos/save.c b/riscos/save.c
index 1974d9c16..bfde316d7 100644
--- a/riscos/save.c
+++ b/riscos/save.c
@@ -116,7 +116,7 @@ static void ro_gui_save_bounced(wimp_message *message);
static bool ro_gui_save_object_native(hlcache_handle *h, char *path);
static bool ro_gui_save_link(const char *url, const char *title, link_format format, char *path);
static void ro_gui_save_set_state(hlcache_handle *h, gui_save_type save_type,
- const char *url, char *leaf_buf, size_t leaf_len,
+ const nsurl *url, char *leaf_buf, size_t leaf_len,
char *icon_buf, size_t icon_len);
static void ro_gui_save_drag_end(wimp_dragged *drag, void *data);
static bool ro_gui_save_create_thumbnail(hlcache_handle *h, const char *name);
@@ -254,7 +254,7 @@ void ro_gui_saveas_quit(void)
*/
void ro_gui_save_prepare(gui_save_type save_type, hlcache_handle *h,
- char *s, const char *url, const char *title)
+ char *s, const nsurl *url, const char *title)
{
char name_buf[FILENAME_MAX];
size_t leaf_offset = 0;
@@ -271,7 +271,11 @@ void ro_gui_save_prepare(gui_save_type save_type, hlcache_handle *h,
free(gui_save_selection);
gui_save_selection = s;
- gui_save_url = url;
+ if (url != NULL) {
+ gui_save_url = nsurl_access(url);
+ } else {
+ gui_save_url = NULL;
+ }
gui_save_title = title;
if (save_dir) {
@@ -280,8 +284,11 @@ void ro_gui_save_prepare(gui_save_type save_type, hlcache_handle *h,
name_buf[leaf_offset++] = '.';
}
- ro_gui_save_set_state(h, save_type,
- h ? nsurl_access(hlcache_handle_get_url(h)) : url,
+ if (h != NULL) {
+ url = hlcache_handle_get_url(h);
+ }
+
+ ro_gui_save_set_state(h, save_type, url,
name_buf + leaf_offset, FILENAME_MAX - leaf_offset,
icon_buf, sizeof(icon_buf));
@@ -386,7 +393,7 @@ void gui_drag_save_object(struct gui_window *g, hlcache_handle *c,
return;
}
- ro_gui_save_set_state(c, save_type, nsurl_access(hlcache_handle_get_url(c)),
+ ro_gui_save_set_state(c, save_type, hlcache_handle_get_url(c),
save_leafname, LEAFNAME_MAX,
icon_buf, sizeof(icon_buf));
@@ -454,7 +461,7 @@ void gui_drag_save_selection(struct gui_window *g, const char *selection)
* \
*/
-void ro_gui_drag_save_link(gui_save_type save_type, const char *url,
+void ro_gui_drag_save_link(gui_save_type save_type, const nsurl *url,
const char *title, struct gui_window *g)
{
wimp_pointer pointer;
@@ -466,7 +473,7 @@ void ro_gui_drag_save_link(gui_save_type save_type, const char *url,
xwimp_create_menu(wimp_CLOSE_MENU, 0, 0);
ro_gui_dialog_close(dialog_saveas);
- gui_save_url = url;
+ gui_save_url = nsurl_access(url);
gui_save_title = title;
gui_save_sourcew = g->window;
saving_from_dialog = false;
@@ -479,8 +486,8 @@ void ro_gui_drag_save_link(gui_save_type save_type, const char *url,
return;
}
- ro_gui_save_set_state(NULL, save_type, url, save_leafname, LEAFNAME_MAX,
- icon_buf, sizeof(icon_buf));
+ ro_gui_save_set_state(NULL, save_type, url, save_leafname,
+ LEAFNAME_MAX, icon_buf, sizeof(icon_buf));
ro_mouse_drag_start(ro_gui_save_drag_end, NULL, NULL, NULL);
@@ -1215,7 +1222,7 @@ bool ro_gui_save_link(const char *url, const char *title, link_format format,
*/
void ro_gui_save_set_state(hlcache_handle *h, gui_save_type save_type,
- const char *url, char *leaf_buf, size_t leaf_len,
+ const nsurl *url, char *leaf_buf, size_t leaf_len,
char *icon_buf, size_t icon_len)
{
/* filename */
@@ -1251,8 +1258,9 @@ void ro_gui_save_set_state(hlcache_handle *h, gui_save_type save_type,
}
/* leafname */
- if (url && url_nice(url, &nice, nsoption_bool(strip_extensions)) ==
- NSERROR_OK) {
+ if ((url != NULL) &&
+ (nsurl_nice(url, &nice, nsoption_bool(strip_extensions)) ==
+ NSERROR_OK)) {
size_t i;
for (i = 0; nice[i]; i++) {
if (nice[i] == '.')
diff --git a/riscos/save.h b/riscos/save.h
index d3ca5c214..08bdc17ec 100644
--- a/riscos/save.h
+++ b/riscos/save.h
@@ -34,10 +34,10 @@ void gui_drag_save_selection(struct gui_window *g, const char *selection);
wimp_w ro_gui_saveas_create(const char *template_name);
void ro_gui_saveas_quit(void);
void ro_gui_save_prepare(enum gui_save_type save_type, struct hlcache_handle *h,
- char *s, const char *url,
+ char *s, const nsurl *url,
const char *title);
void ro_gui_save_start_drag(wimp_pointer *pointer);
-void ro_gui_drag_save_link(enum gui_save_type save_type, const char *url,
+void ro_gui_drag_save_link(enum gui_save_type save_type, const nsurl *url,
const char *title, struct gui_window *g);
void ro_gui_drag_icon(int x, int y, const char *sprite);
void ro_gui_drag_box_cancel(void);
diff --git a/riscos/window.c b/riscos/window.c
index 6a62d560c..4e07293df 100644
--- a/riscos/window.c
+++ b/riscos/window.c
@@ -194,7 +194,7 @@ static hlcache_handle *current_menu_main = 0;
/** Object under menu, or 0 if no object. */
static hlcache_handle *current_menu_object = 0;
/** URL of link under menu, or 0 if no link. */
-static const char *current_menu_url = 0;
+static nsurl *current_menu_url = 0;
static float scale_snap_to[] = {0.10, 0.125, 0.25, 0.333, 0.5, 0.75,
1.0,
@@ -1284,7 +1284,10 @@ static bool gui_window_drag_start(struct gui_window *g, gui_drag_type type,
static void gui_window_save_link(struct gui_window *g, const char *url,
const char *title)
{
- ro_gui_save_prepare(GUI_SAVE_LINK_URL, NULL, NULL, url, title);
+ nsurl *nurl;
+ nsurl_create(url, &nurl);
+ ro_gui_save_prepare(GUI_SAVE_LINK_URL, NULL, NULL, nurl, title);
+ nsurl_unref(nurl);
ro_gui_dialog_open_persistent(g->window, dialog_saveas, true);
}
@@ -2174,7 +2177,10 @@ bool ro_gui_window_menu_prepare(wimp_w w, wimp_i i, wimp_menu *menu,
current_menu_main = NULL;
current_menu_object = NULL;
- current_menu_url = NULL;
+ if (current_menu_url != NULL) {
+ nsurl_unref(current_menu_url);
+ current_menu_url = NULL;
+ }
if (ro_gui_window_to_window_pos(g, pointer->pos.x,
pointer->pos.y, &pos)) {
@@ -2183,7 +2189,7 @@ bool ro_gui_window_menu_prepare(wimp_w w, wimp_i i, wimp_menu *menu,
current_menu_main = cont.main;
current_menu_object = cont.object;
- current_menu_url = cont.link_url;
+ nsurl_create(cont.link_url, &current_menu_url);
}
}
@@ -2444,7 +2450,7 @@ void ro_gui_window_menu_warning(wimp_w w, wimp_i i, wimp_menu *menu,
case BROWSER_OBJECT_INFO:
if (current_menu_object != NULL)
ro_gui_window_prepare_objectinfo(current_menu_object,
- current_menu_url);
+ nsurl_access(current_menu_url));
break;
case BROWSER_OBJECT_SAVE:
@@ -2463,45 +2469,45 @@ void ro_gui_window_menu_warning(wimp_w w, wimp_i i, wimp_menu *menu,
case BROWSER_SAVE_URL_URI:
if (h != NULL)
ro_gui_save_prepare(GUI_SAVE_LINK_URI, NULL, NULL,
- nsurl_access(hlcache_handle_get_url(h)),
+ hlcache_handle_get_url(h),
content_get_title(h));
break;
case BROWSER_SAVE_URL_URL:
if (h != NULL)
ro_gui_save_prepare(GUI_SAVE_LINK_URL, NULL, NULL,
- nsurl_access(hlcache_handle_get_url(h)),
+ hlcache_handle_get_url(h),
content_get_title(h));
break;
case BROWSER_SAVE_URL_TEXT:
if (h != NULL)
ro_gui_save_prepare(GUI_SAVE_LINK_TEXT, NULL, NULL,
- nsurl_access(hlcache_handle_get_url(h)),
+ hlcache_handle_get_url(h),
content_get_title(h));
break;
case BROWSER_OBJECT_SAVE_URL_URI:
if (current_menu_object != NULL)
ro_gui_save_prepare(GUI_SAVE_LINK_URI, NULL, NULL,
- nsurl_access(hlcache_handle_get_url(
- current_menu_object)),
+ hlcache_handle_get_url(
+ current_menu_object),
content_get_title(current_menu_object));
break;
case BROWSER_OBJECT_SAVE_URL_URL:
if (current_menu_object != NULL)
ro_gui_save_prepare(GUI_SAVE_LINK_URL, NULL, NULL,
- nsurl_access(hlcache_handle_get_url(
- current_menu_object)),
+ hlcache_handle_get_url(
+ current_menu_object),
content_get_title(current_menu_object));
break;
case BROWSER_OBJECT_SAVE_URL_TEXT:
if (current_menu_object != NULL)
ro_gui_save_prepare(GUI_SAVE_LINK_TEXT, NULL, NULL,
- nsurl_access(hlcache_handle_get_url(
- current_menu_object)),
+ hlcache_handle_get_url(
+ current_menu_object),
content_get_title(current_menu_object));
break;
@@ -2759,7 +2765,7 @@ bool ro_gui_window_menu_select(wimp_w w, wimp_i i, wimp_menu *menu,
case BROWSER_OBJECT_INFO:
if (current_menu_object != NULL) {
ro_gui_window_prepare_objectinfo(current_menu_object,
- current_menu_url);
+ nsurl_access(current_menu_url));
ro_gui_dialog_open_persistent(g->window,
dialog_objinfo, false);
}
@@ -2799,33 +2805,25 @@ bool ro_gui_window_menu_select(wimp_w w, wimp_i i, wimp_menu *menu,
case BROWSER_LINK_DOWNLOAD:
if (current_menu_url != NULL) {
- error = nsurl_create(current_menu_url, &url);
- if (error == NSERROR_OK) {
- error = browser_window_navigate(bw,
- url,
- browser_window_get_url(bw),
- BW_NAVIGATE_DOWNLOAD,
- NULL,
- NULL,
- NULL);
- nsurl_unref(url);
- }
+ error = browser_window_navigate(bw,
+ current_menu_url,
+ browser_window_get_url(bw),
+ BW_NAVIGATE_DOWNLOAD,
+ NULL,
+ NULL,
+ NULL);
}
break;
case BROWSER_LINK_NEW_WINDOW:
if (current_menu_url != NULL) {
- error = nsurl_create(current_menu_url, &url);
- if (error == NSERROR_OK) {
- error = browser_window_create(
- BW_CREATE_HISTORY |
- BW_CREATE_CLONE,
- url,
- browser_window_get_url(bw),
- bw,
- NULL);
- nsurl_unref(url);
- }
+ error = browser_window_create(
+ BW_CREATE_HISTORY |
+ BW_CREATE_CLONE,
+ url,
+ browser_window_get_url(bw),
+ bw,
+ NULL);
}
break;
@@ -3050,7 +3048,10 @@ void ro_gui_window_menu_close(wimp_w w, wimp_i i, wimp_menu *menu)
{
if (menu == ro_gui_browser_window_menu) {
current_menu_object = NULL;
- current_menu_url = NULL;
+ if (current_menu_url != NULL) {
+ nsurl_unref(current_menu_url);
+ current_menu_url = NULL;
+ }
} else if (menu == gui_form_select_menu) {
gui_form_select_control = NULL;
}
@@ -3579,8 +3580,7 @@ void ro_gui_window_toolbar_click(void *data,
save_type = GUI_SAVE_LINK_TEXT;
ro_gui_drag_save_link(save_type,
- nsurl_access(
- browser_window_get_url(g->bw)),
+ browser_window_get_url(g->bw),
browser_window_get_title(g->bw), g);
}
break;