diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.c b/ext/mbstring/libmbfl/mbfl/mbfilter.c index d25abb63369e4..4820f15e214ce 100644 --- a/ext/mbstring/libmbfl/mbfl/mbfilter.c +++ b/ext/mbstring/libmbfl/mbfl/mbfilter.c @@ -1276,6 +1276,7 @@ mbfl_strcut( bk = _bk; } + decoder->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE; (*encoder->filter_flush)(encoder); if (bk.decoder.filter_dtor) diff --git a/ext/mbstring/tests/gh9535.phpt b/ext/mbstring/tests/gh9535.phpt new file mode 100644 index 0000000000000..d67b6a0863063 --- /dev/null +++ b/ext/mbstring/tests/gh9535.phpt @@ -0,0 +1,210 @@ +--TEST-- +GH-9535 (mb_strcut(): The behavior of mb_strcut in mbstring has been changed in PHP8.1) +--EXTENSIONS-- +mbstring +--FILE-- + +--XFAIL-- +Discussion: https://github.com/php/php-src/pull/9562 +--EXPECTF-- +BASE64: 宛如繁 +HTML-ENTITIES: 宛如 +Quoted-Printable: %s +UTF-16: 宛如繁星般宛如 +UTF-16BE: 宛如繁星般宛如 +UTF-16LE: 宛如繁星般宛如 +UTF-7: 宛如繁星 +UTF7-IMAP: 宛如繁星 +JIS: 宛如繁星般 +ISO-2022-JP: 宛如繁星般 +ISO-2022-JP-MS: 宛如繁星 +GB18030: 宛如繁星般宛如 +HZ: 宛如繁星般 +ISO-2022-KR: 宛如繁星 +ISO-2022-JP-2004: 宛如繁星 +ISO-2022-JP-MOBILE#KDDI: 宛如繁星 +CP50220: 宛如繁星 +CP50221: 宛如繁星 +CP50222: 宛如繁星 + +BASE64: 星のように +HTML-ENTITIES: 星の +Quoted-Printable: 星の +UTF-16: 星のように月のように +UTF-16BE: 星のように月のように +UTF-16LE: 星のように月のように +UTF-7: 星のように月 +UTF7-IMAP: 星のように月 +JIS: 星のように月の +ISO-2022-JP: 星のように月の +ISO-2022-JP-MS: 星のように月の +GB18030: 星のように月のように +HZ: 星のように月のよ +ISO-2022-KR: 星のように月の +ISO-2022-JP-2004: 星のように月の +ISO-2022-JP-MOBILE#KDDI: 星のように月の +CP50220: 星のように月の +CP50221: 星のように月の +CP50222: 星のように月の + +BASE64: %s +HTML-ENTITIES: あa& +Quoted-Printable: あa +UTF-16: あaいb +UTF-16BE: あaいb +UTF-16LE: あaいb +UTF-7: あa +UTF7-IMAP: あa +JIS: あa +ISO-2022-JP: あa +ISO-2022-JP-MS: あa +GB18030: あaいb +HZ: あa +ISO-2022-KR: あa +ISO-2022-JP-2004: あa +ISO-2022-JP-MOBILE#KDDI: あa +CP50220: あa +CP50221: あa +CP50222: あa + +BASE64: AAAAAA +HTML-ENTITIES: AAAAAAAAAA +Quoted-Printable: AAAAAAAAAA +UTF-16: AAAAA +UTF-16BE: AAAAA +UTF-16LE: AAAAA +UTF-7: AAAAAAAAAA +UTF7-IMAP: AAAAAAAAAA +JIS: AAAAAAAAAA +ISO-2022-JP: AAAAAAAAAA +ISO-2022-JP-MS: AAAAAAAAAA +GB18030: AAAAAAAAAA +HZ: AAAAAAAAAA +ISO-2022-KR: AAAAAAAAAA +ISO-2022-JP-2004: AAAAAAAAAA +ISO-2022-JP-MOBILE#KDDI: AAAAAAAAAA +CP50220: AAAAAAAAAA +CP50221: AAAAAAAAAA +CP50222: AAAAAAAAAA + +BASE64:%s +HTML-ENTITIES: ?? +Quoted-Printable: ?? +UTF-16: ? +UTF-16BE: ? +UTF-16LE: ? +UTF-7: ?? +UTF7-IMAP: ?? +JIS: ?? +ISO-2022-JP: ?? +ISO-2022-JP-MS: ?? +GB18030: ?? +HZ: ?? +ISO-2022-KR: ?? +ISO-2022-JP-2004: ?? +ISO-2022-JP-MOBILE#KDDI: ?? +CP50220: ?? +CP50221: ?? +CP50222: ?? + +string(0) "" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??" +string(2) "??"