diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/mbstring/libmbfl/filters/mbfilter_cp1251.c | 2 | ||||
-rw-r--r-- | ext/mbstring/tests/bug75944.phpt | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/ext/mbstring/libmbfl/filters/mbfilter_cp1251.c b/ext/mbstring/libmbfl/filters/mbfilter_cp1251.c index 532806fafc..e28da316e1 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_cp1251.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_cp1251.c @@ -144,7 +144,7 @@ mbfl_filt_conv_wchar_cp1251(int c, mbfl_convert_filter *filter) /* all of this is so ugly now! */ static int mbfl_filt_ident_cp1251(int c, mbfl_identify_filter *filter) { - if (c >= 0x80 && c < 0xff) + if (c >= 0x80 && c <= 0xff) filter->flag = 0; else filter->flag = 1; /* not it */ diff --git a/ext/mbstring/tests/bug75944.phpt b/ext/mbstring/tests/bug75944.phpt new file mode 100644 index 0000000000..81788d7196 --- /dev/null +++ b/ext/mbstring/tests/bug75944.phpt @@ -0,0 +1,13 @@ +--TEST--
+Bug #75944 (wrong detection cp1251 encoding because of missing last cyrillic letter)
+--SKIPIF--
+<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
+--FILE--
+<?php
+var_dump(mb_detect_encoding(chr(0xfe), array('CP-1251'))); // letter '?'
+var_dump(mb_detect_encoding(chr(0xff), array('CP-1251'))); // letter '?'
+?>
+--EXPECT--
+string(12) "Windows-1251"
+string(12) "Windows-1251"
+
|