curl/lib
MonkeybreadSoftware add22feeef
idn: add native AppleIDN (icucore) support for macOS/iOS
I implemented the IDN functions for macOS and iOS using Unicode
libraries coming with macOS and iOS.

Builds and runs here on macOS 14.2.1. Also verified to load and
run on older macOS version 10.13.

Build requires macOS SDK 13 or equivalent.

Set `-DUSE_APPLE_IDN=ON` CMake option to enable it.
With autotools and other build tools, set these manual options:
```
CPPFLAGS=-DUSE_APPLE_IDN
LIBS=-licucore
```

Completes TODO 1.6.

TODO: add autotools option and feature-detection.

Refs: #5330 #5371
Co-authored-by: Viktor Szakats
Closes #13246
2024-04-17 00:24:09 +02:00
..
vauth digest: add check for hashing error 2024-03-07 10:24:27 +01:00
vquic http3: extend download abort tests, fixes in ngtcp2 2024-04-16 23:48:22 +02:00
vssh lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
vtls version: add "ECH" as a feature 2024-04-16 13:24:08 +02:00
.checksrc
.gitattributes
.gitignore build: remove MacOSX-Framework script 2024-04-08 22:46:51 +02:00
altsvc.c lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00
altsvc.h
amigaos.c
amigaos.h
arpa_telnet.h lib: apache style infof and trace macros/functions 2023-10-26 17:42:54 +02:00
asyn-ares.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
asyn-thread.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
asyn.h
base64.c build: fix builds that disable protocols but not digest auth 2023-12-01 23:26:53 -05:00
bufq.c bufq: writing into a softlimit queue cannot be partial 2024-03-03 17:35:47 +01:00
bufq.h lib: Curl_read/Curl_write clarifications 2024-02-28 12:58:55 +01:00
bufref.c lib: rename Curl_strndup to Curl_memdup0 to avoid misunderstanding 2023-12-08 17:22:33 +01:00
bufref.h
c-hyper.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
c-hyper.h http: expect 100 rework 2024-03-18 12:41:56 +01:00
cf-h1-proxy.c tls: use shared init code for TCP+QUIC 2024-04-09 09:08:05 +02:00
cf-h1-proxy.h
cf-h2-proxy.c tls: use shared init code for TCP+QUIC 2024-04-09 09:08:05 +02:00
cf-h2-proxy.h
cf-haproxy.c tls: use shared init code for TCP+QUIC 2024-04-09 09:08:05 +02:00
cf-haproxy.h
cf-https-connect.c build: enable missing OpenSSF-recommended warnings, with fixes 2023-12-16 13:12:37 +00:00
cf-https-connect.h
cf-socket.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
cf-socket.h lib: keep conn IP information together 2024-03-09 23:24:58 +01:00
cfilters.c misc: fix typos 2024-04-11 15:44:22 +02:00
cfilters.h misc: fix typos 2024-04-11 15:44:22 +02:00
CMakeLists.txt cmake: option to disable install & drop curlu target when unused 2023-11-10 18:24:14 +00:00
config-amigaos.h build: delete HAVE_STDINT_H and HAVE_INTTYPES_H 2023-11-06 17:20:39 +00:00
config-dos.h build: variadic macro tidy-ups 2023-10-27 00:37:34 +00:00
config-mac.h lib: remove TIME_WITH_SYS_TIME 2023-09-28 22:58:36 +02:00
config-os400.h lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00
config-plan9.h build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
config-riscos.h build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
config-win32.h build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
config-win32ce.h windows: simplify detecting and using system headers 2023-12-16 13:13:44 +00:00
conncache.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
conncache.h
connect.c lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00
connect.h lib: keep conn IP information together 2024-03-09 23:24:58 +01:00
content_encoding.c content_encoding: brotli and others, pass through 0-length writes 2024-03-28 16:21:20 +01:00
content_encoding.h content_encoding: make Curl_all_content_encodings allocless 2023-11-07 16:35:30 +01:00
cookie.c cookie: if psl fails, reject the cookie 2024-03-04 08:46:59 +01:00
cookie.h
curl_addrinfo.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
curl_addrinfo.h
curl_base64.h
curl_config.h.cmake idn: add native AppleIDN (icucore) support for macOS/iOS 2024-04-17 00:24:09 +02:00
curl_ctype.h
curl_des.c misc: Fix typos in docs and lib 2024-03-01 09:59:48 +01:00
curl_des.h
curl_endian.c
curl_endian.h
curl_fnmatch.c
curl_fnmatch.h
curl_get_line.c lib: convert Curl_get_line to use dynbuf 2024-02-07 09:22:10 +01:00
curl_get_line.h lib: convert Curl_get_line to use dynbuf 2024-02-07 09:22:10 +01:00
curl_gethostname.c
curl_gethostname.h
curl_gssapi.c
curl_gssapi.h
curl_hmac.h build: fix libssh2 + CURL_DISABLE_DIGEST_AUTH + CURL_DISABLE_AWS 2023-11-15 20:57:49 +00:00
curl_krb5.h
curl_ldap.h
curl_md4.h
curl_md5.h
curl_memory.h windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
curl_memrchr.c
curl_memrchr.h build: delete checks for C89 standard headers 2023-09-26 14:25:10 +00:00
curl_multibyte.c windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
curl_multibyte.h windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
curl_ntlm_core.c openssl: fix building with v3 no-deprecated + add CI test 2023-11-23 02:03:02 +00:00
curl_ntlm_core.h
curl_path.c
curl_path.h windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
curl_printf.h curl.h: add CURLE_TOO_LARGE 2023-12-18 10:34:22 +01:00
curl_range.c
curl_range.h
curl_rtmp.c curl_version_info: provide librtmp version 2024-04-15 16:48:34 +02:00
curl_rtmp.h curl_version_info: provide librtmp version 2024-04-15 16:48:34 +02:00
curl_sasl.c sasl: make login option string override http auth 2024-01-26 02:58:21 -05:00
curl_sasl.h
curl_setup_once.h lib: use #error instead of invalid syntax in curl_setup_once.h 2024-04-05 09:24:05 +00:00
curl_setup.h idn: add native AppleIDN (icucore) support for macOS/iOS 2024-04-17 00:24:09 +02:00
curl_sha256.h
curl_sha512_256.c curl_sha512_256: do not use workaround for NetBSD when not needed 2024-03-30 22:44:22 +01:00
curl_sha512_256.h SHA-512/256: implement hash algorithm 2024-02-20 11:35:56 +01:00
curl_sspi.c
curl_sspi.h curl_sspi: support more revocation error names in error messages 2023-11-03 03:50:59 -04:00
curl_threads.c mingw: delete support for legacy mingw.org toolchain 2023-09-23 09:12:57 +00:00
curl_threads.h mingw: delete support for legacy mingw.org toolchain 2023-09-23 09:12:57 +00:00
curl_trc.c lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00
curl_trc.h curl_trc: fix build error when lacking verbose messages 2024-04-08 13:57:14 +02:00
curlx.h curl: use curl_getenv instead of the curlx_ version 2024-03-30 22:45:47 +01:00
cw-out.c cw-out: improved error handling 2024-04-16 15:52:10 +02:00
cw-out.h cw-out: improved error handling 2024-04-16 15:52:10 +02:00
dict.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
dict.h
doh.c TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
doh.h TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
dynbuf.c build: delete/replace clang warning pragmas 2024-01-27 21:19:41 +00:00
dynbuf.h build: enable missing OpenSSF-recommended warnings, with fixes 2023-12-16 13:12:37 +00:00
dynhds.c http2: header conversion tightening 2023-10-21 14:36:51 +02:00
dynhds.h http2: header conversion tightening 2023-10-21 14:36:51 +02:00
easy_lock.h easy_lock: add a pthread_mutex_t fallback 2023-10-12 23:40:08 -04:00
easy.c cw-out: improved error handling 2024-04-16 15:52:10 +02:00
easygetopt.c curldown: Fix email address in Copyright 2024-02-28 11:28:10 +01:00
easyif.h lib: Curl_read/Curl_write clarifications 2024-02-27 14:13:56 +01:00
easyoptions.c TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
easyoptions.h
escape.c lib: provide and use Curl_hexencode 2023-09-30 11:45:39 +02:00
escape.h lib: provide and use Curl_hexencode 2023-09-30 11:45:39 +02:00
file.c file: add support for getting basic directory listings 2024-04-11 12:37:12 +02:00
file.h
fileinfo.c
fileinfo.h
fopen.c fopen: fix narrowing conversion warning on 32-bit Android 2024-02-27 14:26:22 +01:00
fopen.h
formdata.c build: enable missing OpenSSF-recommended warnings, with fixes 2023-12-16 13:12:37 +00:00
formdata.h
ftp.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
ftp.h
ftplistparser.c llist: add Curl_llist_append() 2024-04-11 09:00:51 +02:00
ftplistparser.h
functypes.h windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
getenv.c windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
getinfo.c urldata: remove fields not used depending on used features 2024-04-05 16:06:22 +02:00
getinfo.h
gopher.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
gopher.h
hash.c llist: add Curl_llist_append() 2024-04-11 09:00:51 +02:00
hash.h
headers.c llist: add Curl_llist_append() 2024-04-11 09:00:51 +02:00
headers.h http: move headers collecting to writer 2024-02-26 09:44:15 +01:00
hmac.c lib: enable hmac for digest as well 2023-09-20 13:38:42 +02:00
hostasyn.c Revert "urldata: move async resolver state from easy handle to connectdata" 2023-12-15 12:57:35 +01:00
hostip4.c
hostip6.c hostip6: fix DEBUG_ADDRINFO builds 2023-10-28 00:27:20 -04:00
hostip.c TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
hostip.h TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
hostsyn.c
hsts.c llist: add Curl_llist_append() 2024-04-11 09:00:51 +02:00
hsts.h
http1.c http: h1/h2 proxy unification 2023-09-25 20:12:18 +02:00
http1.h http: h1/h2 proxy unification 2023-09-25 20:12:18 +02:00
http2.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
http2.h
http_aws_sigv4.c lib: reduce use of strncpy 2023-12-11 23:29:02 +01:00
http_aws_sigv4.h
http_chunks.c lib: add trace support for client reads and writes 2024-04-05 16:08:10 +02:00
http_chunks.h lib: Curl_read/Curl_write clarifications 2024-02-28 12:58:55 +01:00
http_digest.c
http_digest.h
http_negotiate.c http_negotiate: fix CURL_DISABLE_PROXY build 2024-04-10 14:56:05 +02:00
http_negotiate.h
http_ntlm.c NTLM_WB: drop support 2024-04-08 13:58:58 +02:00
http_ntlm.h
http_proxy.c tls: use shared init code for TCP+QUIC 2024-04-09 09:08:05 +02:00
http_proxy.h http: h1/h2 proxy unification 2023-09-25 20:12:18 +02:00
http.c lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00
http.h lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00
idn.c idn: add native AppleIDN (icucore) support for macOS/iOS 2024-04-17 00:24:09 +02:00
idn.h idn: add native AppleIDN (icucore) support for macOS/iOS 2024-04-17 00:24:09 +02:00
if2ip.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
if2ip.h build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
imap.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
imap.h
inet_ntop.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
inet_ntop.h
inet_pton.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
inet_pton.h windows: delete redundant headers 2023-12-18 14:56:57 +00:00
krb5.c lib: Curl_read/Curl_write clarifications 2024-02-27 14:13:56 +01:00
ldap.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
libcurl.rc
libcurl.vers.in
llist.c llist: add Curl_llist_append() 2024-04-11 09:00:51 +02:00
llist.h llist: add Curl_llist_append() 2024-04-11 09:00:51 +02:00
macos.c
macos.h
Makefile.am build: remove MacOSX-Framework script 2024-04-08 22:46:51 +02:00
Makefile.inc NTLM_WB: drop support 2024-04-08 13:58:58 +02:00
Makefile.mk build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
Makefile.soname
md4.c mbedtls: fix building with v3 in CMake Unity mode 2024-04-16 09:36:43 +02:00
md5.c
memdebug.c build: delete/replace clang warning pragmas 2024-01-27 21:19:41 +00:00
memdebug.h build: enable missing OpenSSF-recommended warnings, with fixes 2023-12-16 13:12:37 +00:00
mime.c http: expect 100 rework 2024-03-18 12:41:56 +01:00
mime.h mime: add client reader 2024-03-06 00:17:37 +01:00
mprintf.c mprintf: check fputc error rather than matching returned character 2024-04-15 08:38:14 +02:00
mqtt.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
mqtt.h mqtt, remove remaining use of data->state.buffer 2024-01-27 12:42:19 +01:00
multi.c cw-out: improved error handling 2024-04-16 15:52:10 +02:00
multihandle.h multi: introduce SETUP state for better timeouts 2024-04-15 23:42:06 +02:00
multiif.h lib: use multi instead of multi_easy for the active multi 2024-04-05 16:47:36 -04:00
netrc.c lib: convert Curl_get_line to use dynbuf 2024-02-07 09:22:10 +01:00
netrc.h
nonblock.c
nonblock.h
noproxy.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
noproxy.h
openldap.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
optiontable.pl curldown: Fix email address in Copyright 2024-02-28 11:28:10 +01:00
parsedate.c
parsedate.h
pingpong.c smpt: fix starttls 2024-03-05 13:30:16 +01:00
pingpong.h lib: send rework 2024-02-27 08:58:10 +01:00
pop3.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
pop3.h lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
progress.c getinfo: CURLINFO_QUEUE_TIME_T 2023-12-27 09:28:48 +01:00
progress.h getinfo: CURLINFO_QUEUE_TIME_T 2023-12-27 09:28:48 +01:00
psl.c
psl.h
rand.c lib: add debug log outputs for CURLE_BAD_FUNCTION_ARGUMENT 2024-01-08 22:48:24 +01:00
rand.h windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
rename.c windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
rename.h
request.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
request.h http: separate response parsing from response action 2024-03-21 09:34:40 +01:00
rtsp.c misc: fix typos 2024-04-11 15:44:22 +02:00
rtsp.h lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
select.c windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
select.h
sendf.c cw-out: improved error handling 2024-04-16 15:52:10 +02:00
sendf.h cw-out: improved error handling 2024-04-16 15:52:10 +02:00
setopt.c TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
setopt.h
setup-os400.h
setup-vms.h build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
setup-win32.h windows: simplify detecting and using system headers 2023-12-16 13:13:44 +00:00
sha256.c
share.c build: fix some -Wsign-conversion/-Warith-conversion warnings 2023-12-19 12:45:28 +00:00
share.h build: delete support bits for obsolete Windows compilers 2023-11-06 22:00:10 +00:00
sigpipe.h build: delete checks for C89 standard headers 2023-09-26 14:25:10 +00:00
slist.c
slist.h
smb.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
smb.h lib: further send/upload handling polish 2024-03-04 08:42:56 +01:00
smtp.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
smtp.h lib: further send/upload handling polish 2024-03-04 08:42:56 +01:00
sockaddr.h build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
socketpair.c windows: delete redundant headers 2023-12-18 14:56:57 +00:00
socketpair.h asyn-thread: use pipe instead of socketpair for IPC when available 2023-10-18 08:23:53 +02:00
socks_gssapi.c misc: Fix typos in docs and lib 2024-03-01 09:59:48 +01:00
socks_sspi.c build: enable missing OpenSSF-recommended warnings, with fixes 2023-12-16 13:12:37 +00:00
socks.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
socks.h
speedcheck.c
speedcheck.h
splay.c
splay.h
strcase.c
strcase.h
strdup.c lib: rename Curl_strndup to Curl_memdup0 to avoid misunderstanding 2023-12-08 17:22:33 +01:00
strdup.h lib: rename Curl_strndup to Curl_memdup0 to avoid misunderstanding 2023-12-08 17:22:33 +01:00
strerror.c TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
strerror.h windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
strtok.c
strtok.h
strtoofft.c lib: initialize output pointers to NULL before calling strto[ff,l,ul] 2024-02-26 17:19:27 +01:00
strtoofft.h
system_win32.c system_win32: fix a function pointer assignment warning 2023-12-28 03:38:44 -05:00
system_win32.h system_win32: fix a function pointer assignment warning 2023-12-28 03:38:44 -05:00
telnet.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
telnet.h
tftp.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
tftp.h setopt: check CURLOPT_TFTP_BLKSIZE range on set 2023-11-22 07:44:05 +01:00
timediff.c windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
timediff.h
timeval.c windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
timeval.h multi: round the timeout up to prevent early wakeups 2023-09-28 09:52:20 +02:00
transfer.c cw-out: improved error handling 2024-04-16 15:52:10 +02:00
transfer.h lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
url.c lib: merge ENABLE_QUIC C macro into USE_HTTP3 2024-04-13 08:33:27 +00:00
url.h lib: keep conn IP information together 2024-03-09 23:24:58 +01:00
urlapi-int.h
urlapi.c build: prefer USE_IPV6 macro internally (was: ENABLE_IPV6) 2024-04-13 08:33:26 +00:00
urldata.h TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
version_win32.c windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
version_win32.h windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
version.c idn: add native AppleIDN (icucore) support for macOS/iOS 2024-04-17 00:24:09 +02:00
warnless.c windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
warnless.h windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
ws.c lib: add Curl_xfer_write_resp_hd 2024-04-11 09:29:21 +02:00
ws.h lib: client reader polish 2024-03-08 13:11:17 +01:00