summaryrefslogtreecommitdiffstats
path: root/mailparse-php83.patch
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2023-06-06 12:20:50 +0200
committerRemi Collet <remi@php.net>2023-06-06 12:20:50 +0200
commitc7966277d9caa9c893bf872258b0db5c84a46726 (patch)
treebad270b8301064e3b54b7ad5fbe6356984214e52 /mailparse-php83.patch
parente8bab270c618f4cb7f12c6eb4d6a1937348bd473 (diff)
add upstream patches for PHP 8.3
Diffstat (limited to 'mailparse-php83.patch')
-rw-r--r--mailparse-php83.patch106
1 files changed, 106 insertions, 0 deletions
diff --git a/mailparse-php83.patch b/mailparse-php83.patch
new file mode 100644
index 0000000..06c8443
--- /dev/null
+++ b/mailparse-php83.patch
@@ -0,0 +1,106 @@
+From a0d99d637281753f62a28842aad716352dc0e5a3 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@php.net>
+Date: Tue, 30 May 2023 15:22:05 +0200
+Subject: [PATCH] drop usage of removed mbfl APIs in PHP 8.3
+
+---
+ mailparse.c | 19 ++++++++++---------
+ package.xml | 2 +-
+ php_mailparse_mime.c | 7 +++++--
+ 3 files changed, 16 insertions(+), 12 deletions(-)
+
+diff --git a/mailparse.c b/mailparse.c
+index dde0f18..315bfee 100644
+--- a/mailparse.c
++++ b/mailparse.c
+@@ -942,17 +942,15 @@ PHP_FUNCTION(mailparse_determine_best_xfer_encoding)
+ else if (++linelen > 200)
+ longline = 1;
+ }
+- if (longline)
++ if (longline) {
+ bestenc = mbfl_no_encoding_qprint;
++ }
+ php_stream_rewind(stream);
+
+- name = (char *)mbfl_no2preferred_mime_name(bestenc);
+- if (name)
+- {
++ name = mbfl_encoding_preferred_mime_name(mbfl_no2encoding(bestenc));
++ if (name) {
+ RETVAL_STRING(name);
+- }
+- else
+- {
++ } else {
+ RETVAL_FALSE;
+ }
+ }
+@@ -980,6 +978,7 @@ PHP_FUNCTION(mailparse_stream_encode)
+ char *buf;
+ size_t len;
+ size_t bufsize = 2048;
++ const mbfl_encoding *encoding;
+ enum mbfl_no_encoding enc;
+ mbfl_convert_filter *conv = NULL;
+
+@@ -997,8 +996,10 @@ PHP_FUNCTION(mailparse_stream_encode)
+ php_stream_from_zval(srcstream, srcfile);
+ php_stream_from_zval(deststream, destfile);
+
+- enc = mbfl_name2no_encoding(ZSTR_VAL(encod));
+- if (enc == mbfl_no_encoding_invalid) {
++ encoding = mbfl_name2encoding(ZSTR_VAL(encod));
++ if (encoding) {
++ enc = encoding->no_encoding;
++ } else {
+ zend_error(E_WARNING, "%s(): unknown encoding \"%s\"",
+ get_active_function_name(),
+ ZSTR_VAL(encod)
+diff --git a/php_mailparse_mime.c b/php_mailparse_mime.c
+index fdf5862..49934f1 100644
+--- a/php_mailparse_mime.c
++++ b/php_mailparse_mime.c
+@@ -913,11 +913,14 @@ static int filter_into_work_buffer(int c, void *dat)
+
+ PHP_MAILPARSE_API void php_mimepart_decoder_prepare(php_mimepart *part, int do_decode, php_mimepart_extract_func_t decoder, void *ptr)
+ {
++ const mbfl_encoding *encoding;
+ enum mbfl_no_encoding from = mbfl_no_encoding_8bit;
+
+ if (do_decode && part->content_transfer_encoding) {
+- from = mbfl_name2no_encoding(part->content_transfer_encoding);
+- if (from == mbfl_no_encoding_invalid) {
++ encoding = mbfl_name2encoding(part->content_transfer_encoding);
++ if (encoding) {
++ from = encoding->no_encoding;
++ } else {
+ if (strcasecmp("binary", part->content_transfer_encoding) != 0) {
+ zend_error(E_WARNING, "%s(): mbstring doesn't know how to decode %s transfer encoding!",
+ get_active_function_name(),
+From 59e040beacaa93626343bd440c4172bbc4aaef03 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@php.net>
+Date: Tue, 30 May 2023 15:39:31 +0200
+Subject: [PATCH] fix regression for PHP < 8.1
+
+---
+ mailparse.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/mailparse.c b/mailparse.c
+index 315bfee..0f177ce 100644
+--- a/mailparse.c
++++ b/mailparse.c
+@@ -947,7 +947,11 @@ PHP_FUNCTION(mailparse_determine_best_xfer_encoding)
+ }
+ php_stream_rewind(stream);
+
+- name = mbfl_encoding_preferred_mime_name(mbfl_no2encoding(bestenc));
++#if PHP_VERSION_ID < 80100
++ name = (char *)mbfl_no2preferred_mime_name(bestenc);
++#else
++ name = (char *)mbfl_encoding_preferred_mime_name(mbfl_no2encoding(bestenc));
++#endif
+ if (name) {
+ RETVAL_STRING(name);
+ } else {