26static const zend_encoding *dummy_encoding_fetcher(
const char *encoding_name)
41static const zend_encoding *dummy_encoding_detector(
const unsigned char *
string,
size_t length,
const zend_encoding **list,
size_t list_size)
46static size_t dummy_encoding_converter(
unsigned char **to,
size_t *to_length,
const unsigned char *from,
size_t from_length,
const zend_encoding *encoding_to,
const zend_encoding *encoding_from)
51static zend_result dummy_encoding_list_parser(
const char *encoding_list,
size_t encoding_list_len,
const zend_encoding ***return_list,
size_t *return_size,
bool persistent)
58static const zend_encoding *dummy_internal_encoding_getter(
void)
71 dummy_encoding_fetcher,
72 dummy_encoding_name_getter,
73 dummy_encoding_lexer_compatibility_checker,
74 dummy_encoding_detector,
75 dummy_encoding_converter,
76 dummy_encoding_list_parser,
77 dummy_internal_encoding_getter,
78 dummy_internal_encoding_setter
110 multibyte_functions_dummy = multibyte_functions;
117 const char *
value =
zend_ini_string(
"zend.script_encoding",
sizeof(
"zend.script_encoding") - 1, 0);
125 multibyte_functions = multibyte_functions_dummy;
135 return multibyte_functions.encoding_fetcher(
name);
140 return multibyte_functions.encoding_name_getter(
encoding);
145 return multibyte_functions.lexer_compatibility_checker(
encoding);
150 return multibyte_functions.encoding_detector(
string, length, list, list_size);
155 return multibyte_functions.encoding_converter(to, to_length, from, from_length, encoding_to, encoding_from);
160 return multibyte_functions.encoding_list_parser(encoding_list, encoding_list_len, return_list, return_size,
persistent);
165 return multibyte_functions.internal_encoding_getter();
175 if (
CG(script_encoding_list)) {
176 free((
char*)
CG(script_encoding_list));
178 CG(script_encoding_list) = encoding_list;
179 CG(script_encoding_list_size) = encoding_list_size;
185 return multibyte_functions.internal_encoding_setter(
encoding);
xmlCharEncodingHandlerPtr encoding
const char * provider_name
#define pefree(ptr, persistent)
#define pemalloc(size, persistent)
ZEND_API char * zend_ini_string(const char *name, size_t name_length, int orig)
ZEND_API const zend_encoding * zend_multibyte_fetch_encoding(const char *name)
ZEND_API int zend_multibyte_check_lexer_compatibility(const zend_encoding *encoding)
ZEND_API const zend_encoding * zend_multibyte_encoding_detector(const unsigned char *string, size_t length, const zend_encoding **list, size_t list_size)
ZEND_API void zend_multibyte_restore_functions(void)
ZEND_API const zend_encoding * zend_multibyte_encoding_utf32be
ZEND_API zend_result zend_multibyte_set_script_encoding(const zend_encoding **encoding_list, size_t encoding_list_size)
ZEND_API const char * zend_multibyte_get_encoding_name(const zend_encoding *encoding)
ZEND_API const zend_encoding * zend_multibyte_encoding_utf16be
ZEND_API zend_result zend_multibyte_set_internal_encoding(const zend_encoding *encoding)
ZEND_API zend_result zend_multibyte_set_script_encoding_by_string(const char *new_value, size_t new_value_length)
ZEND_API const zend_multibyte_functions * zend_multibyte_get_functions(void)
ZEND_API zend_result zend_multibyte_set_functions(const zend_multibyte_functions *functions)
ZEND_API const zend_encoding * zend_multibyte_encoding_utf8
ZEND_API const zend_encoding * zend_multibyte_get_script_encoding(void)
ZEND_API const zend_encoding * zend_multibyte_get_internal_encoding(void)
ZEND_API const zend_encoding * zend_multibyte_encoding_utf32le
ZEND_API const zend_encoding * zend_multibyte_encoding_utf16le
ZEND_API size_t zend_multibyte_encoding_converter(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length, const zend_encoding *encoding_to, const zend_encoding *encoding_from)
ZEND_API zend_result zend_multibyte_parse_encoding_list(const char *encoding_list, size_t encoding_list_len, const zend_encoding ***return_list, size_t *return_size, bool persistent)
struct _zend_encoding zend_encoding
struct _zend_multibyte_functions zend_multibyte_functions
ZEND_RESULT_CODE zend_result