File 0006-elinks-0.16.0-libidn2.patch of Package elinks

From 41461147907ed9a93792309f074072e981b33f42 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Mon, 11 Apr 2022 09:39:48 +0200
Subject: [PATCH] Resolves: #1098789 - add support for GNU Libidn2

patch by Robert Scheck
---
 Makefile.config.in      |  2 +-
 configure.ac            |  4 ++--
 src/osdep/win32/win32.c |  2 +-
 src/protocol/uri.c      | 12 ++++++------
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Makefile.config.in b/Makefile.config.in
index bf01d78..73d9762 100644
--- a/Makefile.config.in
+++ b/Makefile.config.in
@@ -139,7 +139,7 @@ CONFIG_GOPHER = @CONFIG_GOPHER@
 CONFIG_GPM = @CONFIG_GPM@
 CONFIG_GZIP = @CONFIG_GZIP@
 CONFIG_HTML_HIGHLIGHT = @CONFIG_HTML_HIGHLIGHT@
-CONFIG_IDN = @CONFIG_IDN@
+CONFIG_IDN2 = @CONFIG_IDN2@
 CONFIG_INTERLINK = @CONFIG_INTERLINK@
 CONFIG_IPV6 = @CONFIG_IPV6@
 CONFIG_DBLATEX = @CONFIG_DBLATEX@
diff --git a/configure.ac b/configure.ac
index d4537ab..d3bf724 100644
--- a/configure.ac
+++ b/configure.ac
@@ -556,8 +556,8 @@ EL_LOG_CONFIG([CONFIG_BROTLI], [[brotli]], [[$enable_brotli]])
 EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_LZMA, lzma, lzma.h, lzma, lzma_code,
 	[  --with-lzma             enable lzma encoding support])
 
-EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_IDN, idn, idna.h, idn, stringprep_check_version,
-	[  --without-idn           disable international domain names support])
+EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_IDN2, idn2, idn2.h, idn2, idn2_lookup_ul,
+	[  --without-idn2          disable international domain names support])
 
 # ===================================================================
 # Check for GSSAPI, optional even if installed.
diff --git a/src/osdep/win32/win32.c b/src/osdep/win32/win32.c
index 02b1834..f4c148d 100644
--- a/src/osdep/win32/win32.c
+++ b/src/osdep/win32/win32.c
@@ -44,7 +44,7 @@ init_osdep(void)
 	}
 #endif
 	setlocale(LC_ALL, "");
-#ifdef CONFIG_IDN
+#ifdef CONFIG_IDN2
 	{
 		char buf[60];
 		UINT cp = GetACP();
diff --git a/src/protocol/uri.c b/src/protocol/uri.c
index a8f15d1..218d1af 100644
--- a/src/protocol/uri.c
+++ b/src/protocol/uri.c
@@ -9,8 +9,8 @@
 #ifdef HAVE_ICONV
 #include <iconv.h>
 #endif
-#ifdef HAVE_IDNA_H
-#include <idna.h>
+#ifdef HAVE_IDN2_H
+#include <idn2.h>
 #endif
 #include <stdio.h>
 #include <stdlib.h>
@@ -535,10 +535,10 @@ add_uri_to_string(struct string *string, const struct uri *uri,
 		 * --pasky */
 		if (uri->ipv6 && wants(URI_PORT)) add_char_to_string(string, '[');
 #endif
-#ifdef CONFIG_IDN
+#ifdef CONFIG_IDN2
 		/* Support for the GNU International Domain Name library.
 		 *
-		 * http://www.gnu.org/software/libidn/manual/html_node/IDNA-Functions.html
+		 * http://www.gnu.org/software/libidn/libidn2/manual/libidn2.html
 		 */
 		if (wants(URI_IDN)) {
 			char *host = NULL;
@@ -556,10 +556,10 @@ add_uri_to_string(struct string *string, const struct uri *uri,
 
 			if (host) {
 				char *idname;
-				int code = idna_to_ascii_8z(host, &idname, 0);
+				int code = idn2_lookup_ul(host, &idname, 0);
 
 				/* FIXME: Return NULL if it coughed? --jonas */
-				if (code == IDNA_SUCCESS) {
+				if (code == IDN2_OK) {
 					add_to_string(string, idname);
 					free(idname);
 					add_host = 0;
-- 
2.38.1

openSUSE Build Service is sponsored by