From: Daniel Stenberg Date: Wed, 14 Dec 2022 13:41:02 +0000 (+0100) Subject: idn: remove Curl_win32_ascii_to_idn X-Git-Tag: curl-7_87_0~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=301812bec27a06a13b34b1678a8a6adab56ad43d;p=thirdparty%2Fcurl.git idn: remove Curl_win32_ascii_to_idn It was not used. Introduce a new IDN header for the prototype(s). Closes #10094 --- diff --git a/lib/idn_win32.c b/lib/idn_win32.c index 4ebb6b7734..b3088be6a0 100644 --- a/lib/idn_win32.c +++ b/lib/idn_win32.c @@ -29,7 +29,7 @@ #include "curl_setup.h" #ifdef USE_WIN32_IDN - +#include "idn_win32.h" #include "curl_multibyte.h" #include "curl_memory.h" #include "warnless.h" @@ -52,9 +52,6 @@ WINBASEAPI int WINAPI IdnToUnicode(DWORD dwFlags, #define IDN_MAX_LENGTH 255 -bool Curl_win32_idn_to_ascii(const char *in, char **out); -bool Curl_win32_ascii_to_idn(const char *in, char **out); - bool Curl_win32_idn_to_ascii(const char *in, char **out) { bool success = FALSE; @@ -78,29 +75,4 @@ bool Curl_win32_idn_to_ascii(const char *in, char **out) return success; } -bool Curl_win32_ascii_to_idn(const char *in, char **out) -{ - bool success = FALSE; - - wchar_t *in_w = curlx_convert_UTF8_to_wchar(in); - if(in_w) { - size_t in_len = wcslen(in_w) + 1; - wchar_t unicode[IDN_MAX_LENGTH]; - int chars = IdnToUnicode(0, in_w, curlx_uztosi(in_len), - unicode, IDN_MAX_LENGTH); - curlx_unicodefree(in_w); - if(chars) { - char *mstr = curlx_convert_wchar_to_UTF8(unicode); - if(mstr) { - *out = strdup(mstr); - curlx_unicodefree(mstr); - if(*out) - success = TRUE; - } - } - } - - return success; -} - #endif /* USE_WIN32_IDN */ diff --git a/lib/idn_win32.h b/lib/idn_win32.h new file mode 100644 index 0000000000..8a76403368 --- /dev/null +++ b/lib/idn_win32.h @@ -0,0 +1,32 @@ +#ifndef HEADER_CURL_IDN_WIN32_H +#define HEADER_CURL_IDN_WIN32_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2022, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ + +#ifdef USE_WIN32_IDN + +bool Curl_win32_idn_to_ascii(const char *in, char **out); + +#endif /* USE_WIN32_IDN */ +#endif /* HEADER_CURL_IDN_WIN32_H */ diff --git a/lib/url.c b/lib/url.c index 0af812bcd1..4f88fa9846 100644 --- a/lib/url.c +++ b/lib/url.c @@ -71,10 +71,8 @@ #define IDN2_LOOKUP(name, host, flags) \ idn2_lookup_ul((const char *)name, (char **)host, flags) #endif - #elif defined(USE_WIN32_IDN) -/* prototype for Curl_win32_idn_to_ascii() */ -bool Curl_win32_idn_to_ascii(const char *in, char **out); +#include "idn.h" #endif /* USE_LIBIDN2 */ #include "doh.h"