diff options
Diffstat (limited to 'posix/regex.c')
-rw-r--r-- | posix/regex.c | 52 |
1 files changed, 5 insertions, 47 deletions
diff --git a/posix/regex.c b/posix/regex.c index 5793950..567c7d0 100644 --- a/posix/regex.c +++ b/posix/regex.c @@ -82,6 +82,11 @@ # define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) # define btowc __btowc +# define iswctype __iswctype +# define mbrtowc __mbrtowc +# define wcslen __wcslen +# define wcscoll __wcscoll +# define wcrtomb __wcrtomb /* We are also using some library internals. */ # include <locale/localeinfo.h> @@ -1284,11 +1289,7 @@ convert_mbs_to_wcs (dest, src, len, offset_buffer, is_binary) for( ; mb_remain > 0 ; ++wc_count, ++pdest, mb_remain -= consumed, psrc += consumed) { -#ifdef _LIBC - consumed = __mbrtowc (pdest, psrc, mb_remain, &mbs); -#else consumed = mbrtowc (pdest, psrc, mb_remain, &mbs); -#endif if (consumed <= 0) /* failed to convert. maybe src contains binary data. @@ -3309,13 +3310,8 @@ PREFIX(regex_compile) (ARG_PREFIX(pattern), ARG_PREFIX(size), syntax, bufp) for (ch = 0; ch < 1 << BYTEWIDTH; ++ch) { -# ifdef _LIBC - if (__iswctype (__btowc (ch), wt)) - SET_LIST_BIT (ch); -# else if (iswctype (btowc (ch), wt)) SET_LIST_BIT (ch); -# endif if (translate && (is_upper || is_lower) && (ISUPPER (ch) || ISLOWER (ch))) @@ -4631,11 +4627,7 @@ truncate_wchar (c) mbstate_t state; int retval; memset (&state, '\0', sizeof (state)); -# ifdef _LIBC - retval = __wcrtomb (buf, c, &state); -# else retval = wcrtomb (buf, c, &state); -# endif return retval > 0 ? buf[0] : (unsigned char) c; } #endif /* WCHAR */ @@ -6435,13 +6427,8 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos, & ~(uintptr_t)(__alignof__(wctype_t) - 1); wctype = *((wctype_t*)alignedp); workp += CHAR_CLASS_SIZE; -# ifdef _LIBC - if (__iswctype((wint_t)c, wctype)) - goto char_set_matched; -# else if (iswctype((wint_t)c, wctype)) goto char_set_matched; -# endif } /* match with collating_symbol? */ @@ -6477,20 +6464,12 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos, for (workp2 = workp + coll_symbol_length ; workp < workp2 ;) { const CHAR_T *backup_d = d, *backup_dend = dend; -# ifdef _LIBC - length = __wcslen (workp); -# else length = wcslen (workp); -# endif /* If wcscoll(the collating symbol, whole string) > 0, any substring of the string never match with the collating symbol. */ -# ifdef _LIBC - if (__wcscoll (workp, d) > 0) -# else if (wcscoll (workp, d) > 0) -# endif { workp += length + 1; continue; @@ -6515,11 +6494,7 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos, str_buf[i] = TRANSLATE(*d); str_buf[i+1] = '\0'; -# ifdef _LIBC - match = __wcscoll (workp, str_buf); -# else match = wcscoll (workp, str_buf); -# endif if (match == 0) goto char_set_matched; @@ -6630,20 +6605,12 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos, for (workp2 = workp + equiv_class_length ; workp < workp2 ;) { const CHAR_T *backup_d = d, *backup_dend = dend; -# ifdef _LIBC - length = __wcslen (workp); -# else length = wcslen (workp); -# endif /* If wcscoll(the collating symbol, whole string) > 0, any substring of the string never match with the collating symbol. */ -# ifdef _LIBC - if (__wcscoll (workp, d) > 0) -# else if (wcscoll (workp, d) > 0) -# endif { workp += length + 1; break; @@ -6668,11 +6635,7 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos, str_buf[i] = TRANSLATE(*d); str_buf[i+1] = '\0'; -# ifdef _LIBC - match = __wcscoll (workp, str_buf); -# else match = wcscoll (workp, str_buf); -# endif if (match == 0) goto char_set_matched; @@ -6754,13 +6717,8 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos, range_end_char = str_buf + 4; } -# ifdef _LIBC - if (__wcscoll (range_start_char, str_buf+2) <= 0 - && __wcscoll (str_buf+2, range_end_char) <= 0) -# else if (wcscoll (range_start_char, str_buf+2) <= 0 && wcscoll (str_buf+2, range_end_char) <= 0) -# endif goto char_set_matched; } } |