summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2016-03-11 07:24:39 +0000
committerSteve Holme <steve_holme@hotmail.com>2016-03-11 07:24:39 +0000
commit58e4a067430a8f9187155f50e117dc3150595dd5 (patch)
tree7deb66cb1f621d67c652ed8f5036862b4df0834f
parentb0841739898ad458230382a9b3abab360130d233 (diff)
downloadcurl-58e4a067430a8f9187155f50e117dc3150595dd5.tar.gz
idn_win32: Use boolean based success codes
Rather than use 0 and 1 integer base result codes use a FALSE / TRUE based success code.
-rw-r--r--lib/idn_win32.c24
-rw-r--r--lib/url.c11
2 files changed, 19 insertions, 16 deletions
diff --git a/lib/idn_win32.c b/lib/idn_win32.c
index 8b5baf73b..8dc300b36 100644
--- a/lib/idn_win32.c
+++ b/lib/idn_win32.c
@@ -65,12 +65,13 @@ WINBASEAPI int WINAPI IdnToUnicode(DWORD dwFlags,
#define IDN_MAX_LENGTH 255
-int curl_win32_idn_to_ascii(const char *in, char **out);
-int curl_win32_ascii_to_idn(const char *in, char **out);
+bool curl_win32_idn_to_ascii(const char *in, char **out);
+bool curl_win32_ascii_to_idn(const char *in, char **out);
-int curl_win32_idn_to_ascii(const char *in, char **out)
+bool curl_win32_idn_to_ascii(const char *in, char **out)
{
- int ret = 0;
+ bool success = FALSE;
+
wchar_t *in_w = Curl_convert_UTF8_to_wchar(in);
if(in_w) {
wchar_t punycode[IDN_MAX_LENGTH];
@@ -79,15 +80,17 @@ int curl_win32_idn_to_ascii(const char *in, char **out)
if(chars) {
*out = Curl_convert_wchar_to_UTF8(punycode);
if(*out)
- ret = 1; /* success */
+ success = TRUE;
}
}
- return ret;
+
+ return success;
}
-int curl_win32_ascii_to_idn(const char *in, char **out)
+bool curl_win32_ascii_to_idn(const char *in, char **out)
{
- int ret = 0;
+ bool success = FALSE;
+
wchar_t *in_w = Curl_convert_UTF8_to_wchar(in);
if(in_w) {
size_t in_len = wcslen(in_w) + 1;
@@ -98,10 +101,11 @@ int curl_win32_ascii_to_idn(const char *in, char **out)
if(chars) {
*out = Curl_convert_wchar_to_UTF8(unicode);
if(*out)
- ret = 1; /* success */
+ success = TRUE;
}
}
- return ret;
+
+ return success;
}
#endif /* USE_WIN32_IDN */
diff --git a/lib/url.c b/lib/url.c
index 218929d53..0894bae8b 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -75,7 +75,7 @@ void idn_free (void *ptr);
#endif
#elif defined(USE_WIN32_IDN)
/* prototype for curl_win32_idn_to_ascii() */
-int curl_win32_idn_to_ascii(const char *in, char **out);
+bool curl_win32_idn_to_ascii(const char *in, char **out);
#endif /* USE_LIBIDN */
#include "urldata.h"
@@ -3803,15 +3803,14 @@ static void fix_hostname(struct SessionHandle *data,
* Check name for non-ASCII and convert hostname to ACE form.
*************************************************************/
char *ace_hostname = NULL;
- int rc = curl_win32_idn_to_ascii(host->name, &ace_hostname);
- if(rc == 0)
- infof(data, "Failed to convert %s to ACE;\n",
- host->name);
- else {
+
+ if(curl_win32_idn_to_ascii(host->name, &ace_hostname)) {
host->encalloc = ace_hostname;
/* change the name pointer to point to the encoded hostname */
host->name = host->encalloc;
}
+ else
+ infof(data, "Failed to convert %s to ACE;\n", host->name);
#else
infof(data, "IDN support not present, can't parse Unicode domains\n");
#endif