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:
Alex Dowad 2022-10-04 15:18:10 +09:00
parent 20769fb9ab
commit 3ce888a837
8 changed files with 13 additions and 13 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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;
}; };

View File

@ -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;

View File

@ -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;

View File

@ -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 */

View File

@ -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 */