"BIG5",
mbfl_encoding_big5_aliases,
mblen_table_big5,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_big5_wchar,
&vtbl_wchar_big5
};
"BIG5",
NULL,
mblen_table_big5,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_cp950_wchar,
&vtbl_wchar_cp950
};
"ISO-2022-JP",
cp50220_aliases,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_cp50220_wchar,
&vtbl_wchar_cp50220
};
"ISO-2022-JP",
NULL,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_cp50221_wchar,
&vtbl_wchar_cp50221
};
"ISO-2022-JP",
NULL,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_cp50222_wchar,
&vtbl_wchar_cp50222
};
"CP51932",
mbfl_encoding_cp51932_aliases,
mblen_table_eucjp,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_cp51932_wchar,
&vtbl_wchar_cp51932
};
"Shift_JIS",
mbfl_encoding_cp932_aliases,
mblen_table_sjis,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_cp932_wchar,
&vtbl_wchar_cp932
};
"CP936",
mbfl_encoding_cp936_aliases,
mblen_table_cp936,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_cp936_wchar,
&vtbl_wchar_cp936
};
"CN-GB",
mbfl_encoding_euc_cn_aliases,
mblen_table_euccn,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_euccn_wchar,
&vtbl_wchar_euccn
};
"EUC-JP",
mbfl_encoding_euc_jp_aliases,
mblen_table_eucjp,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_eucjp_wchar,
&vtbl_wchar_eucjp
};
"EUC-JP",
mbfl_encoding_eucjp2004_aliases,
mblen_table_eucjp,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_eucjp2004_wchar,
&vtbl_wchar_eucjp2004
};
"EUC-JP",
mbfl_encoding_eucjp_win_aliases,
mblen_table_eucjp,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_eucjpwin_wchar,
&vtbl_wchar_eucjpwin
};
"EUC-KR",
mbfl_encoding_euc_kr_aliases,
mblen_table_euckr,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_euckr_wchar,
&vtbl_wchar_euckr
};
"EUC-TW",
mbfl_encoding_euc_tw_aliases,
mblen_table_euctw,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_euctw_wchar,
&vtbl_wchar_euctw
};
"GB18030",
mbfl_encoding_gb18030_aliases,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_gb18030_wchar,
&vtbl_wchar_gb18030
};
"HZ-GB-2312",
NULL,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_hz_wchar,
&vtbl_wchar_hz
};
"ISO-2022-JP",
mbfl_encoding_2022jpms_aliases,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_2022jpms_wchar,
&vtbl_wchar_2022jpms
};
"ISO-2022-KR",
NULL,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_2022kr_wchar,
&vtbl_wchar_2022kr
};
"ISO-2022-JP-2004",
NULL,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_2022jp_2004_wchar,
&vtbl_wchar_2022jp_2004
};
"ISO-2022-JP",
mbfl_encoding_2022jp_kddi_aliases,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_2022jp_kddi_wchar,
&vtbl_wchar_2022jp_kddi
};
"ISO-2022-JP",
NULL,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_jis_wchar,
&vtbl_wchar_jis
};
"ISO-2022-JP",
NULL,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_2022jp_wchar,
&vtbl_wchar_2022jp
};
"Shift_JIS",
mbfl_encoding_sjis_aliases,
mblen_table_sjis,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_sjis_wchar,
&vtbl_wchar_sjis
};
"Shift_JIS",
mbfl_encoding_sjis2004_aliases,
mblen_table_sjis,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_sjis2004_wchar,
&vtbl_wchar_sjis2004
};
"Shift_JIS",
mbfl_encoding_sjis_mac_aliases,
mblen_table_sjis,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_sjis_mac_wchar,
&vtbl_wchar_sjis_mac
};
"Shift_JIS",
mbfl_encoding_sjis_docomo_aliases,
mblen_table_sjis,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_sjis_docomo_wchar,
&vtbl_wchar_sjis_docomo
};
"Shift_JIS",
mbfl_encoding_sjis_kddi_aliases,
mblen_table_sjis,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_sjis_kddi_wchar,
&vtbl_wchar_sjis_kddi
};
"Shift_JIS",
mbfl_encoding_sjis_sb_aliases,
mblen_table_sjis,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_sjis_sb_wchar,
&vtbl_wchar_sjis_sb
};
"Shift_JIS",
mbfl_encoding_sjis_open_aliases,
mblen_table_sjis,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_sjis_open_wchar,
&vtbl_wchar_sjis_open
};
"UHC",
mbfl_encoding_uhc_aliases,
mblen_table_uhc,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_uhc_wchar,
&vtbl_wchar_uhc
};
"UTF-7",
mbfl_encoding_utf7_aliases,
NULL,
- MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE,
+ MBFL_ENCTYPE_GL_UNSAFE,
&vtbl_utf7_wchar,
&vtbl_wchar_utf7
};
NULL,
mbfl_encoding_utf7imap_aliases,
NULL,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_utf7imap_wchar,
&vtbl_wchar_utf7imap
};
"UTF-8",
mbfl_encoding_utf8_aliases,
mblen_table_utf8,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_utf8_wchar,
&vtbl_wchar_utf8
};
"UTF-8",
mbfl_encoding_utf8_docomo_aliases,
mblen_table_utf8,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_utf8_docomo_wchar,
&vtbl_wchar_utf8_docomo
};
"UTF-8",
mbfl_encoding_utf8_kddi_a_aliases,
mblen_table_utf8,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_utf8_kddi_a_wchar,
&vtbl_wchar_utf8_kddi_a
};
"UTF-8",
mbfl_encoding_utf8_kddi_b_aliases,
mblen_table_utf8,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_utf8_kddi_b_wchar,
&vtbl_wchar_utf8_kddi_b
};
"UTF-8",
mbfl_encoding_utf8_sb_aliases,
mblen_table_utf8,
- MBFL_ENCTYPE_MBCS,
+ 0,
&vtbl_utf8_sb_wchar,
&vtbl_wchar_utf8_sb
};
#define MBFL_CONSTS_H
#define MBFL_ENCTYPE_SBCS 0x00000001 /* single-byte encoding */
-#define MBFL_ENCTYPE_MBCS 0x00000002 /* multi-byte encoding */
#define MBFL_ENCTYPE_WCS2 0x00000010 /* 2 bytes/char */
#define MBFL_ENCTYPE_MWC2 0x00000040 /* 2+ bytes/char */
#define MBFL_ENCTYPE_WCS4 0x00000100 /* 4 bytes/char */
static bool php_mb_zend_encoding_lexer_compatibility_checker(const zend_encoding *_encoding)
{
const mbfl_encoding *encoding = (const mbfl_encoding*)_encoding;
- if (encoding->flag & MBFL_ENCTYPE_SBCS) {
- return 1;
- }
- if ((encoding->flag & (MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_GL_UNSAFE)) == MBFL_ENCTYPE_MBCS) {
- return 1;
- }
- return 0;
+ return !(encoding->flag & MBFL_ENCTYPE_GL_UNSAFE);
}
static const zend_encoding *php_mb_zend_encoding_detector(const unsigned char *arg_string, size_t arg_length, const zend_encoding **list, size_t list_size)
/* {{{ MBSTRING_API size_t php_mb_mbchar_bytes_ex() */
MBSTRING_API size_t php_mb_mbchar_bytes_ex(const char *s, const mbfl_encoding *enc)
{
- if (enc != NULL) {
- if (enc->flag & MBFL_ENCTYPE_MBCS) {
- if (enc->mblen_table != NULL) {
- if (s != NULL) return enc->mblen_table[*(unsigned char *)s];
+ if (enc) {
+ if (enc->mblen_table) {
+ if (s) {
+ return enc->mblen_table[*(unsigned char *)s];
}
} else if (enc->flag & MBFL_ENCTYPE_WCS2) {
return 2;