diff options
-rw-r--r-- | desktop/browser.c | 17 | ||||
-rw-r--r-- | riscos/menus.c | 11 | ||||
-rw-r--r-- | riscos/window.c | 8 |
3 files changed, 28 insertions, 8 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index 13ca3cab9..e65fa38c6 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -489,10 +489,19 @@ void browser_window_update(struct browser_window *bw, if (bw->current_content->title != NULL) { err = utf8_to_enc(bw->current_content->title, local_encoding_name(), 0, &title_local_enc); - /* this should never fail */ - assert(err == UTF8_CONVERT_OK); - gui_window_set_title(bw->window, title_local_enc); - free(title_local_enc); + if (err != UTF8_CONVERT_OK) { + /* A bad encoding should never happen, + * so assert this */ + assert(err != UTF8_CONVERT_BADENC); + LOG(("utf8_to_enc failed")); + /* use utf-8 encoded title instead */ + gui_window_set_title(bw->window, + bw->current_content->title); + } + else { + gui_window_set_title(bw->window, title_local_enc); + free(title_local_enc); + } } else gui_window_set_title(bw->window, bw->current_content->url); diff --git a/riscos/menus.c b/riscos/menus.c index e15c638d5..42f2d6f01 100644 --- a/riscos/menus.c +++ b/riscos/menus.c @@ -964,8 +964,15 @@ void gui_create_form_select_menu(struct browser_window *bw, wimp_ICON_BG_COLOUR_SHIFT); err = utf8_to_enc(option->text, local_encoding_name(), 0, &text_convert); - /* this should never fail */ - assert(err == UTF8_CONVERT_OK); + if (err != UTF8_CONVERT_OK) { + /* A bad encoding should never happen, + * so assert this */ + assert(err != UTF8_CONVERT_BADENC); + LOG(("utf8_to_enc failed")); + warn_user("NoMemory", 0); + ro_gui_menu_closed(); + return; + } gui_form_select_menu->entries[i].data.indirected_text.text = text_convert; diff --git a/riscos/window.c b/riscos/window.c index 01c7ce8c2..12729853b 100644 --- a/riscos/window.c +++ b/riscos/window.c @@ -891,8 +891,12 @@ void gui_window_set_status(struct gui_window *g, const char *text) /* convert text to local encoding */ err = utf8_to_enc(text, local_encoding_name(), 0, &local_text); - /* this should never fail */ - assert(err == UTF8_CONVERT_OK); + if (err != UTF8_CONVERT_OK) { + /* A bad encoding should never happen, so assert this */ + assert(err != UTF8_CONVERT_BADENC); + LOG(("utf8_to_enc failed")); + return; + } ro_gui_set_icon_string(g->toolbar->status_handle, ICON_STATUS_TEXT, local_text); |