Skip to content

Commit d0417eb

Browse files
committed
Fix GH-8208: mb_encode_mimeheader: $indent functionality broken
We also need to factor in the indent, when getting the encoder result. Closes GH-8213.
1 parent ef29ddc commit d0417eb

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ PHP NEWS
1111
- Intl:
1212
. Fixed bug GH-8142 (Compilation error on cygwin). (David Carlier)
1313

14+
- MBString:
15+
. Fixed bug GH-8208 (mb_encode_mimeheader: $indent functionality broken).
16+
(cmb)
17+
1418
- MySQLi:
1519
. Fixed bug GH-8068 (mysqli_fetch_object creates inaccessible properties).
1620
(cmb)

ext/mbstring/libmbfl/mbfl/mbfilter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1803,7 +1803,7 @@ mime_header_encoder_result(struct mime_header_encoder_data *pe, mbfl_string *res
18031803
mbfl_memory_device_strncat(&pe->outdev, "\x3f\x3d", 2); /* ?= */
18041804
} else if (pe->tmpdev.pos > 0) {
18051805
if (pe->outdev.pos > 0) {
1806-
if ((pe->outdev.pos - pe->linehead + pe->tmpdev.pos) > 74) {
1806+
if ((pe->outdev.pos - pe->linehead + pe->tmpdev.pos + pe->firstindent) > 74) {
18071807
mbfl_memory_device_strncat(&pe->outdev, pe->lwsp, pe->lwsplen);
18081808
} else {
18091809
mbfl_memory_device_output(0x20, &pe->outdev);

ext/mbstring/tests/gh8208.phpt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
--TEST--
2+
GH-8208 (mb_encode_mimeheader: $indent functionality broken)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded("mbstring")) die("skip mbstring extension not available");
6+
?>
7+
--FILE--
8+
<?php
9+
$s = "[service-Aufgaben S&W-Team][#19415] VM''s aufsetzen mit unterschiedlichen";
10+
$p = 'Subject: ';
11+
var_dump(
12+
$p . mb_encode_mimeheader($s, 'UTF-8', 'Q', "\015\012", strlen($p)),
13+
mb_encode_mimeheader($p . $s, 'UTF-8', 'Q', "\015\012", 0)
14+
);
15+
?>
16+
--EXPECT--
17+
string(84) "Subject: [service-Aufgaben S&W-Team][#19415] VM''s aufsetzen mit
18+
unterschiedlichen"
19+
string(84) "Subject: [service-Aufgaben S&W-Team][#19415] VM''s aufsetzen mit
20+
unterschiedlichen"

0 commit comments

Comments
 (0)