diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-07-17 19:44:26 +0100 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-10-24 15:12:56 +0100 |
commit | 6afda499c290bea17fe2bcf5fcd257a1770528cf (patch) | |
tree | ee5e5494a853e1f10f32b3e8fa23832292d8b038 | |
parent | 5f5ca2c20587e035278163c9b444b36cfff6dced (diff) | |
download | netsurf-6afda499c290bea17fe2bcf5fcd257a1770528cf.tar.gz netsurf-6afda499c290bea17fe2bcf5fcd257a1770528cf.tar.bz2 |
Show the IDN decoded form in the URL bar on GTK if the option is set.
-rw-r--r-- | desktop/options.h | 3 | ||||
-rw-r--r-- | gtk/scaffolding.c | 8 | ||||
-rw-r--r-- | utils/nsurl.c | 2 | ||||
-rw-r--r-- | 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); /** |