git: b811e6a59296 - main - multimedia/vcdimager: Fix build with libxml2 2.14

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Sun, 29 Jun 2025 13:02:02 UTC
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b811e6a59296a9e4493ebd35a6f29daf14bbd738

commit b811e6a59296a9e4493ebd35a6f29daf14bbd738
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2025-06-29 13:00:08 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-06-29 13:01:35 +0000

    multimedia/vcdimager: Fix build with libxml2 2.14
    
    PR:             285893
    Obtained from:  https://gitlab.archlinux.org/archlinux/packaging/packages/vcdimager/-/raw/main/libxml214.diff
---
 multimedia/vcdimager/Makefile                      |  5 ++--
 .../files/patch-frontends_xml_vcd__xml__common.c   | 35 ++++++++++++++++++++++
 2 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/multimedia/vcdimager/Makefile b/multimedia/vcdimager/Makefile
index 334b2c022eb4..d84a40e09447 100644
--- a/multimedia/vcdimager/Makefile
+++ b/multimedia/vcdimager/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	vcdimager
-PORTVERSION=	2.0.1
-PORTREVISION=	6
+DISTVERSION=	2.0.1
+PORTREVISION=	7
 CATEGORIES=	multimedia
 MASTER_SITES=	GNU
 
@@ -19,7 +19,6 @@ USE_GNOME=	libxml2
 USE_LDCONFIG=	yes
 
 GNU_CONFIGURE=	yes
-GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
 INSTALL_TARGET=	install-strip
 TEST_TARGET=	check
 
diff --git a/multimedia/vcdimager/files/patch-frontends_xml_vcd__xml__common.c b/multimedia/vcdimager/files/patch-frontends_xml_vcd__xml__common.c
new file mode 100644
index 000000000000..a76d8ce6da95
--- /dev/null
+++ b/multimedia/vcdimager/files/patch-frontends_xml_vcd__xml__common.c
@@ -0,0 +1,35 @@
+--- frontends/xml/vcd_xml_common.c.orig	2018-01-03 20:17:37 UTC
++++ frontends/xml/vcd_xml_common.c
+@@ -242,16 +242,26 @@ _convert (const char in[], const char encoding[], bool
+ 
+   temp = size - 1;
+   if (from) {
+-    if (NULL != handler->output)
+-      ret = handler->output (out, &out_size, (const unsigned char *) in, &temp);
+-    else
++    if (!(handler->flags & 2) && NULL != handler->output.func)
++      ret = handler->output.func (handler->outputCtxt, out, &out_size, (const unsigned char *) in, &temp, 1);
++    if ((handler->flags & 2) && NULL != handler->output.legacyFunc)
++      ret = handler->output.legacyFunc (out, &out_size, (const unsigned char *) in, &temp);
++    else {
++      xmlCharEncCloseFunc(handler);
+       return strdup(in);
++    }
+   } else {
+-    if (NULL != handler->input)
+-      ret = handler->input (out, &out_size, (const unsigned char *) in, &temp);
+-    else
++    if (!(handler->flags & 2) && NULL != handler->input.func)
++      ret = handler->input.func (handler->inputCtxt, out, &out_size, (const unsigned char *) in, &temp, 1);
++    if ((handler->flags & 2) && NULL != handler->input.legacyFunc)
++      ret = handler->input.legacyFunc (out, &out_size, (const unsigned char *) in, &temp);
++    else {
++      xmlCharEncCloseFunc(handler);
+       return strdup(in);
++    }
+   }
++
++  xmlCharEncCloseFunc(handler);
+ 
+   if (ret < 0 || (temp - size + 1))
+     {