mail/pecl-mailparse: Fix build with PHP 7.3

Obtained from:	upstream
This commit is contained in:
Danilo G. Baio 2018-10-13 17:48:38 +00:00
parent 051ef09981
commit 093fd7ff95
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=481999
2 changed files with 81 additions and 1 deletions

View File

@ -13,6 +13,6 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
USES= php:pecl
USE_PHP= mbstring:build
IGNORE_WITH_PHP= 56 73
IGNORE_WITH_PHP= 56
.include <bsd.port.mk>

View File

@ -0,0 +1,80 @@
http://git.php.net/?p=pecl/mail/mailparse.git;a=patch;h=13c2c425e519b22660a03d566c35e76b3d4751dc
From 13c2c425e519b22660a03d566c35e76b3d4751dc Mon Sep 17 00:00:00 2001
From: Jan-E <github@ehrhardt.nl>
Date: Tue, 10 Jul 2018 17:42:24 +0200
Subject: [PATCH] PHP 7.3 compatibility
---
mailparse.c | 13 +++++++++++++
php_mailparse_mime.c | 9 +++++++++
2 files changed, 22 insertions(+)
diff --git a/mailparse.c b/mailparse.c
index bf5be0f..f658d68 100644
--- mailparse.c
+++ mailparse.c
@@ -984,12 +984,21 @@ PHP_FUNCTION(mailparse_stream_encode)
buf = emalloc(bufsize);
RETVAL_TRUE;
+#if PHP_VERSION_ID >= 70300
+ conv = mbfl_convert_filter_new(mbfl_no2encoding(mbfl_no_encoding_8bit),
+ mbfl_no2encoding(enc),
+ mailparse_stream_output,
+ mailparse_stream_flush,
+ deststream
+ );
+#else
conv = mbfl_convert_filter_new(mbfl_no_encoding_8bit,
enc,
mailparse_stream_output,
mailparse_stream_flush,
deststream
);
+#endif
if (enc == mbfl_no_encoding_qprint) {
/* If the qp encoded section is going to be digitally signed,
@@ -1165,9 +1174,13 @@ PHP_FUNCTION(mailparse_msg_get_structure)
mailparse_fetch_mimepart_resource(part, arg);
+#if PHP_VERSION_ID >= 70300
+ array_init(return_value);
+#else
if (array_init(return_value) == FAILURE) {
RETURN_FALSE;
}
+#endif
php_mimepart_enum_parts(part, &get_structure_callback, return_value);
}
/* }}} */
diff --git a/php_mailparse_mime.c b/php_mailparse_mime.c
index b22eabb..8176c9d 100644
--- php_mailparse_mime.c
+++ php_mailparse_mime.c
@@ -906,12 +906,21 @@ PHP_MAILPARSE_API void php_mimepart_decoder_prepare(php_mimepart *part, int do_d
if (from == mbfl_no_encoding_8bit || from == mbfl_no_encoding_7bit) {
part->extract_filter = NULL;
} else {
+#if PHP_VERSION_ID >= 70300
+ part->extract_filter = mbfl_convert_filter_new(
+ mbfl_no2encoding(from), mbfl_no2encoding(mbfl_no_encoding_8bit),
+ filter_into_work_buffer,
+ NULL,
+ part
+ );
+#else
part->extract_filter = mbfl_convert_filter_new(
from, mbfl_no_encoding_8bit,
filter_into_work_buffer,
NULL,
part
);
+#endif
}
}
--
2.1.4