mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
* posix/regcomp.c (re_compile_fastmap_iter): Use __mbrtowc.
* posix/regex_internal.c (build_wcs_buffer, build_wcs_upper_buffer, re_string_skip_chars, re_string_reconstruct): Likewise. * posix/regex_internal.h [!_LIBC] (__mbrtowc): New #define.
This commit is contained in:
@ -229,7 +229,7 @@ build_wcs_buffer (re_string_t *pstr)
|
||||
}
|
||||
else
|
||||
p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx;
|
||||
mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state);
|
||||
mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
|
||||
if (BE (mbclen == (size_t) -2, 0))
|
||||
{
|
||||
/* The buffer doesn't have enough space, finish to build. */
|
||||
@ -299,9 +299,9 @@ build_wcs_upper_buffer (re_string_t *pstr)
|
||||
|
||||
remain_len = end_idx - byte_idx;
|
||||
prev_st = pstr->cur_state;
|
||||
mbclen = mbrtowc (&wc,
|
||||
((const char *) pstr->raw_mbs + pstr->raw_mbs_idx
|
||||
+ byte_idx), remain_len, &pstr->cur_state);
|
||||
mbclen = __mbrtowc (&wc,
|
||||
((const char *) pstr->raw_mbs + pstr->raw_mbs_idx
|
||||
+ byte_idx), remain_len, &pstr->cur_state);
|
||||
if (BE (mbclen + 2 > 2, 1))
|
||||
{
|
||||
wchar_t wcu = wc;
|
||||
@ -369,7 +369,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
|
||||
}
|
||||
else
|
||||
p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx;
|
||||
mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state);
|
||||
mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
|
||||
if (BE (mbclen + 2 > 2, 1))
|
||||
{
|
||||
wchar_t wcu = wc;
|
||||
@ -491,8 +491,8 @@ re_string_skip_chars (re_string_t *pstr, int new_raw_idx, wint_t *last_wc)
|
||||
int remain_len;
|
||||
remain_len = pstr->len - rawbuf_idx;
|
||||
prev_st = pstr->cur_state;
|
||||
mbclen = mbrtowc (&wc, (const char *) pstr->raw_mbs + rawbuf_idx,
|
||||
remain_len, &pstr->cur_state);
|
||||
mbclen = __mbrtowc (&wc, (const char *) pstr->raw_mbs + rawbuf_idx,
|
||||
remain_len, &pstr->cur_state);
|
||||
if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0))
|
||||
{
|
||||
/* We treat these cases as a single byte character. */
|
||||
@ -734,8 +734,8 @@ re_string_reconstruct (re_string_t *pstr, int idx, int eflags)
|
||||
/* XXX Don't use mbrtowc, we know which conversion
|
||||
to use (UTF-8 -> UCS4). */
|
||||
memset (&cur_state, 0, sizeof (cur_state));
|
||||
mbclen = mbrtowc (&wc2, (const char *) p, mlen,
|
||||
&cur_state);
|
||||
mbclen = __mbrtowc (&wc2, (const char *) p, mlen,
|
||||
&cur_state);
|
||||
if (raw + offset - p <= mbclen
|
||||
&& mbclen < (size_t) -2)
|
||||
{
|
||||
|
Reference in New Issue
Block a user