]> granicus.if.org Git - php/commitdiff
Add identify filter for ISO-8859-7 (Latin/Greek)
authorAlex Dowad <alexinbeijing@gmail.com>
Sat, 19 Sep 2020 18:38:13 +0000 (20:38 +0200)
committerAlex Dowad <alexinbeijing@gmail.com>
Fri, 16 Oct 2020 20:17:45 +0000 (22:17 +0200)
ext/mbstring/libmbfl/filters/mbfilter_iso8859_7.c

index 64763dbcfed5159f0ce0aade625d619c754d35e8..63ae85e84e33f2abc665946f6624bfa6eb1346b9 100644 (file)
@@ -31,6 +31,8 @@
 #include "mbfilter_iso8859_7.h"
 #include "unicode_table_iso8859_7.h"
 
+static int mbfl_filt_ident_iso8859_7(int c, mbfl_identify_filter *filter);
+
 static const char *mbfl_encoding_8859_7_aliases[] = {"ISO8859-7", "greek", NULL};
 
 const mbfl_encoding mbfl_encoding_8859_7 = {
@@ -47,7 +49,7 @@ const mbfl_encoding mbfl_encoding_8859_7 = {
 const struct mbfl_identify_vtbl vtbl_identify_8859_7 = {
        mbfl_no_encoding_8859_7,
        mbfl_filt_ident_common_ctor,
-       mbfl_filt_ident_true
+       mbfl_filt_ident_iso8859_7
 };
 
 const struct mbfl_convert_vtbl vtbl_8859_7_wchar = {
@@ -132,3 +134,11 @@ int mbfl_filt_conv_wchar_8859_7(int c, mbfl_convert_filter *filter)
 
        return c;
 }
+
+static int mbfl_filt_ident_iso8859_7(int c, mbfl_identify_filter *filter)
+{
+       /* These bytes are not mapped to any character in ISO-8859-7 */
+       if (c == 0xAE || c == 0xD2 || c == 0xFF)
+               filter->status = 1;
+       return c;
+}