Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 haskell-libxml-sax (0.7.5-13) unstable; urgency=medium
 .
   * Declare compliance with Debian policy 4.6.2
   * Sourceful upload for GHC 9.4
Author: Ilias Tsitsimpis <iliastsi@debian.org>

---
The information above should follow the Patch Tagging Guidelines, please
checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
Bug: <upstream-bugtracker-url>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: (no|not-needed|<patch-forwarded-url>)
Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
Reviewed-By: <name and email of someone who approved/reviewed the patch>
Last-Update: 2024-08-04

--- haskell-libxml-sax-0.7.5.orig/cbits/hslibxml-shim.c
+++ haskell-libxml-sax-0.7.5/cbits/hslibxml-shim.c
@@ -3,6 +3,7 @@
 #include "hslibxml-shim.h"
 #include <string.h>
 #include <stdio.h>
+#include <stdlib.h>
 
 /* for hslibxml_parse_complete */
 #include <libxml/parserInternals.h>
@@ -33,19 +34,19 @@ hslibxml_alloc_parser(const char *filena
 	xmlSAXHandler sax;
 	xmlParserCtxt *ctx;
 	UserData *user_data;
-	
+
 	static int entity_resolver_set = 0;
 	if (entity_resolver_set == 0)
 	{
 		entity_resolver_set = 1;
 		xmlSetExternalEntityLoader(hslibxml_entity_loader);
 	}
-	
+
 	user_data = calloc(1, sizeof(UserData));
-	
+
 	memset(&sax, 0, sizeof(xmlSAXHandler));
 	sax.initialized = XML_SAX2_MAGIC;
-	
+
 	ctx = xmlCreatePushParserCtxt(&sax, NULL, NULL, 0, filename);
 	ctx->replaceEntities = 1;
 	ctx->_private = user_data;
@@ -62,9 +63,9 @@ int
 hslibxml_parse_complete(xmlParserCtxt *ctx) {
 	xmlParserInputPtr input;
 	int rc;
-	
+
 	rc = xmlParseChunk(ctx, NULL, 0, 1);
-	
+
 	/* Optimization: delete input stream buffers when there's nothing
 	 * more to be parsed.
 	 *
@@ -75,7 +76,7 @@ hslibxml_parse_complete(xmlParserCtxt *c
 	while ((input = inputPop(ctx)) != NULL) {
 		xmlFreeInputStream(input);
 	}
-	
+
 	return rc;
 }
 
@@ -86,7 +87,7 @@ hslibxml_want_callback(xmlParserCtxt *ct
 	{
 		return 1;
 	}
-	
+
 	return (ctx == cb_ctx);
 }
 
@@ -338,10 +339,10 @@ void
 hslibxml_setcb_reference(xmlParserCtxt *ctx, referenceSAXFunc cb)
 {
 	ctx->sax->reference = cb;
-	
+
 	if (cb == NULL)
 	{ ctx->replaceEntities = 1; }
-	
+
 	else
 	{ ctx->replaceEntities = 0; }
 }
@@ -378,10 +379,10 @@ hslibxml_on_warning(void *data, const ch
 	char *msg;
 	va_list params;
 	int rc;
-	
+
 	ctx = (xmlParserCtxt *)data;
 	user_data = (UserData *)ctx->_private;
-	
+
 	va_start(params, format);
 	rc = vasprintf(&msg, format, params);
 	if (rc == -1)
@@ -390,7 +391,7 @@ hslibxml_on_warning(void *data, const ch
 		user_data->warning(ctx, format);
 		return;
 	}
-	
+
 	user_data->warning(ctx, msg);
 	free(msg);
 }
@@ -403,10 +404,10 @@ hslibxml_on_error(void *data, const char
 	char *msg;
 	va_list params;
 	int rc;
-	
+
 	ctx = (xmlParserCtxt *)data;
 	user_data = (UserData *)ctx->_private;
-	
+
 	va_start(params, format);
 	rc = vasprintf(&msg, format, params);
 	if (rc == -1)
@@ -415,7 +416,7 @@ hslibxml_on_error(void *data, const char
 		user_data->error(ctx, format);
 		return;
 	}
-	
+
 	user_data->error(ctx, msg);
 	free(msg);
 }
@@ -426,10 +427,10 @@ hslibxml_setcb_warning(xmlParserCtxt *ct
 	UserData *user_data = (UserData *)ctx->_private;
 	if (cb == NULL)
 	{ ctx->sax->warning = NULL; }
-	
+
 	else
 	{ ctx->sax->warning = hslibxml_on_warning; }
-	
+
 	user_data->warning = cb;
 }
 
@@ -439,10 +440,10 @@ hslibxml_setcb_error(xmlParserCtxt *ctx,
 	UserData *user_data = (UserData *)ctx->_private;
 	if (cb == NULL)
 	{ ctx->sax->error = NULL; }
-	
+
 	else
 	{ ctx->sax->error = hslibxml_on_error; }
-	
+
 	user_data->error = cb;
 }
 
