From 6afda499c290bea17fe2bcf5fcd257a1770528cf Mon Sep 17 00:00:00 2001 From: Chris Young Date: Fri, 17 Jul 2015 19:44:26 +0100 Subject: Show the IDN decoded form in the URL bar on GTK if the option is set. --- desktop/options.h | 3 +++ gtk/scaffolding.c | 8 +++++++- utils/nsurl.c | 2 +- utils/nsurl.h | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/desktop/options.h b/desktop/options.h index 33ecb7554..f01261ee1 100644 --- a/desktop/options.h +++ b/desktop/options.h @@ -185,6 +185,9 @@ NSOPTION_UINT(min_reflow_period, DEFAULT_REFLOW_PERIOD) /* use core selection menu */ NSOPTION_BOOL(core_select_menu, false) +/* display decoded international domain names */ +NSOPTION_BOOL(display_decoded_idn, false) + /******** Fetcher options ********/ /** Maximum simultaneous active fetchers */ diff --git a/gtk/scaffolding.c b/gtk/scaffolding.c index 4506ac27f..dc03d9453 100644 --- a/gtk/scaffolding.c +++ b/gtk/scaffolding.c @@ -2346,7 +2346,13 @@ nserror gui_window_set_url(struct gui_window *gw, nsurl *url) g = nsgtk_get_scaffold(gw); if (g->top_level == gw) { - gtk_entry_set_text(GTK_ENTRY(g->url_bar), nsurl_access(url)); + if (nsoption_bool(display_decoded_idn) == false) { + gtk_entry_set_text(GTK_ENTRY(g->url_bar), nsurl_access(url)); + } else { + char *idn_url = nsurl_access_utf8(url); + gtk_entry_set_text(GTK_ENTRY(g->url_bar), idn_url); + free(idn_url); + } gtk_editable_set_position(GTK_EDITABLE(g->url_bar), -1); } return NSERROR_OK; diff --git a/utils/nsurl.c b/utils/nsurl.c index bb3054df1..6a9296022 100644 --- a/utils/nsurl.c +++ b/utils/nsurl.c @@ -1698,7 +1698,7 @@ const char *nsurl_access(const nsurl *url) return url->string; } -const char *nsurl_access_utf8(const nsurl *url) +char *nsurl_access_utf8(const nsurl *url) { lwc_string *host; char *idna_host; diff --git a/utils/nsurl.h b/utils/nsurl.h index 4fbc17b49..07d73f17f 100644 --- a/utils/nsurl.h +++ b/utils/nsurl.h @@ -191,7 +191,7 @@ const char *nsurl_access(const nsurl *url); * * The returned string has a trailing '\0'. */ -const char *nsurl_access_utf8(const nsurl *url); +char *nsurl_access_utf8(const nsurl *url); /** -- cgit v1.2.3