]> granicus.if.org Git - php/commitdiff
Add mbstring identify filter for '7bit' encoding
authorAlex Dowad <alexinbeijing@gmail.com>
Sun, 6 Sep 2020 11:08:47 +0000 (13:08 +0200)
committerAlex Dowad <alexinbeijing@gmail.com>
Tue, 13 Oct 2020 04:12:38 +0000 (06:12 +0200)
ext/mbstring/libmbfl/filters/mbfilter_7bit.c
ext/mbstring/libmbfl/filters/mbfilter_7bit.h
ext/mbstring/libmbfl/mbfl/mbfl_ident.c

index 42ed23326daf6e9a64137f96470b61380abe2372..38956c12710a2acca6703b9bfe97c75f5799bdd4 100644 (file)
@@ -31,6 +31,8 @@
 #include "mbfilter.h"
 #include "mbfilter_7bit.h"
 
+static int mbfl_filt_ident_7bit(int c, mbfl_identify_filter *filter);
+
 const mbfl_encoding mbfl_encoding_7bit = {
        mbfl_no_encoding_7bit,
        "7bit",
@@ -42,6 +44,12 @@ const mbfl_encoding mbfl_encoding_7bit = {
        NULL
 };
 
+const struct mbfl_identify_vtbl vtbl_identify_7bit = {
+       mbfl_no_encoding_7bit,
+       mbfl_filt_ident_common_ctor,
+       mbfl_filt_ident_7bit
+};
+
 const struct mbfl_convert_vtbl vtbl_8bit_7bit = {
        mbfl_no_encoding_8bit,
        mbfl_no_encoding_7bit,
@@ -78,3 +86,11 @@ int mbfl_filt_conv_any_7bit(int c, mbfl_convert_filter *filter)
        }
        return c;
 }
+
+static int mbfl_filt_ident_7bit(int c, mbfl_identify_filter *filter)
+{
+       if (c >= 0x80) {
+               filter->flag = 1;
+       }
+       return c;
+}
index d0dfe2c51816b3cbeac04c52891b483b11d9230f..f842a2ad3be4dce3d7a250cf96cb0ddcb76d921d 100644 (file)
@@ -34,6 +34,7 @@
 #include "mbfilter.h"
 
 extern const mbfl_encoding mbfl_encoding_7bit;
+extern const struct mbfl_identify_vtbl vtbl_identify_7bit;
 extern const struct mbfl_convert_vtbl vtbl_8bit_7bit;
 extern const struct mbfl_convert_vtbl vtbl_7bit_8bit;
 
index 8e79bde65b9ba67e1d1bc0abff134acb4fe60560..d18de0445d85b7f5f26847be8c0c769270edd365 100644 (file)
@@ -159,6 +159,7 @@ static const struct mbfl_identify_vtbl *mbfl_identify_filter_list[] = {
        &vtbl_identify_cp50221,
        &vtbl_identify_cp50222,
        &vtbl_identify_gb18030,
+       &vtbl_identify_7bit,
        &vtbl_identify_false,
        NULL
 };