summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2015-07-17 19:44:26 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2015-10-24 15:12:56 +0100
commit6afda499c290bea17fe2bcf5fcd257a1770528cf (patch)
treeee5e5494a853e1f10f32b3e8fa23832292d8b038
parent5f5ca2c20587e035278163c9b444b36cfff6dced (diff)
downloadnetsurf-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.h3
-rw-r--r--gtk/scaffolding.c8
-rw-r--r--utils/nsurl.c2
-rw-r--r--utils/nsurl.h2
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);
/**