]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
IDN: fix ß with AppleIDN
authorMonkeybreadSoftware <support@monkeybreadsoftware.de>
Sat, 13 Jul 2024 20:14:01 +0000 (22:14 +0200)
committerViktor Szakats <commit@vsz.me>
Sun, 14 Jul 2024 07:53:40 +0000 (09:53 +0200)
Add flags UIDNA_NONTRANSITIONAL_TO_ASCII and
UIDNA_NONTRANSITIONAL_TO_UNICODE to encode ß correctly.

It fixes test 165.

Reported-by: Viktor Szakats
Bug: #14176
Closes #14179

lib/idn.c

index e56970fbb68cd1fbb89bafded81cf39e6e27f400..8d6bfe7ce62ff57bae28405edaf1e76c304866b6 100644 (file)
--- a/lib/idn.c
+++ b/lib/idn.c
@@ -57,7 +57,8 @@
 static CURLcode mac_idn_to_ascii(const char *in, char **out)
 {
   UErrorCode err = U_ZERO_ERROR;
-  UIDNA* idna = uidna_openUTS46(UIDNA_CHECK_BIDI, &err);
+  UIDNA* idna = uidna_openUTS46(
+    UIDNA_CHECK_BIDI|UIDNA_NONTRANSITIONAL_TO_ASCII, &err);
   if(U_FAILURE(err)) {
     return CURLE_OUT_OF_MEMORY;
   }
@@ -83,7 +84,8 @@ static CURLcode mac_idn_to_ascii(const char *in, char **out)
 static CURLcode mac_ascii_to_idn(const char *in, char **out)
 {
   UErrorCode err = U_ZERO_ERROR;
-  UIDNA* idna = uidna_openUTS46(UIDNA_CHECK_BIDI, &err);
+  UIDNA* idna = uidna_openUTS46(
+    UIDNA_CHECK_BIDI|UIDNA_NONTRANSITIONAL_TO_UNICODE, &err);
   if(U_FAILURE(err)) {
     return CURLE_OUT_OF_MEMORY;
   }