mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Use uint32_t for 'illegal_substchar' codepoint in mbstring
This value is a wchar, so the best type for it is uint32_t.
This commit is contained in:
parent
20769fb9ab
commit
3ce888a837
@ -154,7 +154,7 @@ void mbfl_buffer_converter_illegal_mode(mbfl_buffer_converter *convd, int mode)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mbfl_buffer_converter_illegal_substchar(mbfl_buffer_converter *convd, int substchar)
|
void mbfl_buffer_converter_illegal_substchar(mbfl_buffer_converter *convd, uint32_t substchar)
|
||||||
{
|
{
|
||||||
if (convd->filter2) {
|
if (convd->filter2) {
|
||||||
convd->filter2->illegal_substchar = substchar;
|
convd->filter2->illegal_substchar = substchar;
|
||||||
@ -387,7 +387,7 @@ mbfl_convert_encoding(
|
|||||||
|
|
||||||
if (filter2 != NULL) {
|
if (filter2 != NULL) {
|
||||||
filter2->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
filter2->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
||||||
filter2->illegal_substchar = 0x3f; /* '?' */
|
filter2->illegal_substchar = '?';
|
||||||
}
|
}
|
||||||
|
|
||||||
mbfl_memory_device_init(&device, string->len, (string->len >> 2) + 8);
|
mbfl_memory_device_init(&device, string->len, (string->len >> 2) + 8);
|
||||||
|
@ -142,7 +142,7 @@ struct _mbfl_buffer_converter {
|
|||||||
MBFLAPI extern mbfl_buffer_converter * mbfl_buffer_converter_new(const mbfl_encoding *from, const mbfl_encoding *to, size_t buf_initsz);
|
MBFLAPI extern mbfl_buffer_converter * mbfl_buffer_converter_new(const mbfl_encoding *from, const mbfl_encoding *to, size_t buf_initsz);
|
||||||
MBFLAPI extern void mbfl_buffer_converter_delete(mbfl_buffer_converter *convd);
|
MBFLAPI extern void mbfl_buffer_converter_delete(mbfl_buffer_converter *convd);
|
||||||
MBFLAPI extern void mbfl_buffer_converter_illegal_mode(mbfl_buffer_converter *convd, int mode);
|
MBFLAPI extern void mbfl_buffer_converter_illegal_mode(mbfl_buffer_converter *convd, int mode);
|
||||||
MBFLAPI extern void mbfl_buffer_converter_illegal_substchar(mbfl_buffer_converter *convd, int substchar);
|
MBFLAPI extern void mbfl_buffer_converter_illegal_substchar(mbfl_buffer_converter *convd, uint32_t substchar);
|
||||||
MBFLAPI extern size_t mbfl_buffer_converter_feed(mbfl_buffer_converter *convd, mbfl_string *string);
|
MBFLAPI extern size_t mbfl_buffer_converter_feed(mbfl_buffer_converter *convd, mbfl_string *string);
|
||||||
MBFLAPI extern void mbfl_buffer_converter_flush(mbfl_buffer_converter *convd);
|
MBFLAPI extern void mbfl_buffer_converter_flush(mbfl_buffer_converter *convd);
|
||||||
MBFLAPI extern mbfl_string * mbfl_buffer_converter_result(mbfl_buffer_converter *convd, mbfl_string *result);
|
MBFLAPI extern mbfl_string * mbfl_buffer_converter_result(mbfl_buffer_converter *convd, mbfl_string *result);
|
||||||
|
@ -243,7 +243,7 @@ int mbfl_filt_conv_illegal_output(int c, mbfl_convert_filter *filter)
|
|||||||
unsigned int w = c;
|
unsigned int w = c;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int mode_backup = filter->illegal_mode;
|
int mode_backup = filter->illegal_mode;
|
||||||
int substchar_backup = filter->illegal_substchar;
|
uint32_t substchar_backup = filter->illegal_substchar;
|
||||||
|
|
||||||
/* The used substitution character may not be supported by the target character encoding.
|
/* The used substitution character may not be supported by the target character encoding.
|
||||||
* If that happens, first try to use "?" instead and if that also fails, silently drop the
|
* If that happens, first try to use "?" instead and if that also fails, silently drop the
|
||||||
|
@ -57,7 +57,7 @@ struct _mbfl_convert_filter {
|
|||||||
const mbfl_encoding *from;
|
const mbfl_encoding *from;
|
||||||
const mbfl_encoding *to;
|
const mbfl_encoding *to;
|
||||||
int illegal_mode;
|
int illegal_mode;
|
||||||
int illegal_substchar;
|
uint32_t illegal_substchar;
|
||||||
size_t num_illegalchar;
|
size_t num_illegalchar;
|
||||||
void *opaque;
|
void *opaque;
|
||||||
};
|
};
|
||||||
|
@ -883,8 +883,8 @@ static PHP_INI_MH(OnUpdate_mbstring_substitute_character)
|
|||||||
} else {
|
} else {
|
||||||
MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
||||||
MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
||||||
MBSTRG(filter_illegal_substchar) = 0x3f; /* '?' */
|
MBSTRG(filter_illegal_substchar) = '?';
|
||||||
MBSTRG(current_filter_illegal_substchar) = 0x3f; /* '?' */
|
MBSTRG(current_filter_illegal_substchar) = '?';
|
||||||
}
|
}
|
||||||
|
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
@ -1015,9 +1015,9 @@ ZEND_TSRMLS_CACHE_UPDATE();
|
|||||||
mbstring_globals->default_detect_order_list = (enum mbfl_no_encoding *) php_mb_default_identify_list_neut;
|
mbstring_globals->default_detect_order_list = (enum mbfl_no_encoding *) php_mb_default_identify_list_neut;
|
||||||
mbstring_globals->default_detect_order_list_size = sizeof(php_mb_default_identify_list_neut) / sizeof(php_mb_default_identify_list_neut[0]);
|
mbstring_globals->default_detect_order_list_size = sizeof(php_mb_default_identify_list_neut) / sizeof(php_mb_default_identify_list_neut[0]);
|
||||||
mbstring_globals->filter_illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
mbstring_globals->filter_illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
||||||
mbstring_globals->filter_illegal_substchar = 0x3f; /* '?' */
|
mbstring_globals->filter_illegal_substchar = '?';
|
||||||
mbstring_globals->current_filter_illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
mbstring_globals->current_filter_illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
|
||||||
mbstring_globals->current_filter_illegal_substchar = 0x3f; /* '?' */
|
mbstring_globals->current_filter_illegal_substchar = '?';
|
||||||
mbstring_globals->illegalchars = 0;
|
mbstring_globals->illegalchars = 0;
|
||||||
mbstring_globals->encoding_translation = 0;
|
mbstring_globals->encoding_translation = 0;
|
||||||
mbstring_globals->strict_detection = 0;
|
mbstring_globals->strict_detection = 0;
|
||||||
|
@ -87,9 +87,9 @@ ZEND_BEGIN_MODULE_GLOBALS(mbstring)
|
|||||||
enum mbfl_no_encoding *default_detect_order_list;
|
enum mbfl_no_encoding *default_detect_order_list;
|
||||||
size_t default_detect_order_list_size;
|
size_t default_detect_order_list_size;
|
||||||
int filter_illegal_mode;
|
int filter_illegal_mode;
|
||||||
int filter_illegal_substchar;
|
uint32_t filter_illegal_substchar;
|
||||||
int current_filter_illegal_mode;
|
int current_filter_illegal_mode;
|
||||||
int current_filter_illegal_substchar;
|
uint32_t current_filter_illegal_substchar;
|
||||||
enum mbfl_no_language language;
|
enum mbfl_no_language language;
|
||||||
bool encoding_translation;
|
bool encoding_translation;
|
||||||
bool strict_detection;
|
bool strict_detection;
|
||||||
|
@ -238,7 +238,7 @@ static uint32_t *emit_special_casing_sequence(uint32_t w, uint32_t *out)
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
MBSTRING_API zend_string *php_unicode_convert_case(php_case_mode case_mode, const char *srcstr, size_t in_len, const mbfl_encoding *src_encoding, int illegal_mode, int illegal_substchar)
|
MBSTRING_API zend_string *php_unicode_convert_case(php_case_mode case_mode, const char *srcstr, size_t in_len, const mbfl_encoding *src_encoding, int illegal_mode, uint32_t illegal_substchar)
|
||||||
{
|
{
|
||||||
/* A Unicode codepoint can expand out to up to 3 codepoints when uppercased, lowercased, or title cased
|
/* A Unicode codepoint can expand out to up to 3 codepoints when uppercased, lowercased, or title cased
|
||||||
* See http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt */
|
* See http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt */
|
||||||
|
@ -91,7 +91,7 @@ typedef enum {
|
|||||||
|
|
||||||
MBSTRING_API zend_string *php_unicode_convert_case(
|
MBSTRING_API zend_string *php_unicode_convert_case(
|
||||||
php_case_mode case_mode, const char *srcstr, size_t srclen,
|
php_case_mode case_mode, const char *srcstr, size_t srclen,
|
||||||
const mbfl_encoding *src_encoding, int illegal_mode, int illegal_substchar);
|
const mbfl_encoding *src_encoding, int illegal_mode, uint32_t illegal_substchar);
|
||||||
|
|
||||||
/* Optimize the common ASCII case for lower/upper */
|
/* Optimize the common ASCII case for lower/upper */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user