diff options
-rw-r--r-- | dillorc | 2 | ||||
-rw-r--r-- | src/prefs.c | 2 | ||||
-rw-r--r-- | src/url.c | 22 |
3 files changed, 19 insertions, 7 deletions
@@ -95,7 +95,7 @@ # "%s" is replaced with the search keywords separated by '+'. # search_url="http://search.lycos.com/?query=%s" # search_url="http://www.alltheweb.com/search?cat=web&query=%s" -#search_url="http://www.google.com/search?q=%s" +#search_url="http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=%s" # Set the proxy information for http. # WARNING: dillo uses wget for ftp and https. To use a proxy for those diff --git a/src/prefs.c b/src/prefs.c index 48fe2a86..10e87d0c 100644 --- a/src/prefs.c +++ b/src/prefs.c @@ -42,7 +42,7 @@ #define D_VW_FONTNAME "DejaVu Sans" #define D_FW_FONTNAME "DejaVu Sans Mono" -#define D_SEARCH_URL "http://www.google.com/search?q=%s" +#define D_SEARCH_URL "http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=%s" #define D_SAVE_DIR "/tmp/" #define DW_COLOR_DEFAULT_BGND 0xdcd1ba @@ -102,11 +102,23 @@ const char *a_Url_hostname(const DilloUrl *u) DilloUrl *url = (DilloUrl *) u; if (!url->hostname && url->authority) { - if ((p = strchr(url->authority, ':'))) { - url->port = strtol(p + 1, NULL, 10); - url->hostname = dStrndup(url->authority,(uint_t)(p - url->authority)); - } else - url->hostname = url->authority; + if (url->authority[0] == '[' && (p = strchr(url->authority, ']'))) { + /* numeric ipv6 address, strip the brackets */ + url->hostname = dStrndup(url->authority + 1, + (uint_t)(p - url->authority - 1)); + if ((p = strchr(p, ':'))) { + url->port = strtol(p + 1, NULL, 10); + } + } else { + /* numeric ipv4 or hostname */ + if ((p = strchr(url->authority, ':'))) { + url->port = strtol(p + 1, NULL, 10); + url->hostname = dStrndup(url->authority, + (uint_t)(p - url->authority)); + } else { + url->hostname = url->authority; + } + } } return url->hostname; |