diff options
Diffstat (limited to 'gl/regex_internal.c')
| -rw-r--r-- | gl/regex_internal.c | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/gl/regex_internal.c b/gl/regex_internal.c index cf3bf1bb..7acec79d 100644 --- a/gl/regex_internal.c +++ b/gl/regex_internal.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* Extended regular expression matching and search library. | 1 | /* Extended regular expression matching and search library. |
| 2 | Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software | 2 | Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 |
| 3 | Foundation, Inc. | 3 | Free Software Foundation, Inc. |
| 4 | This file is part of the GNU C Library. | 4 | This file is part of the GNU C Library. |
| 5 | Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. | 5 | Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. |
| 6 | 6 | ||
| @@ -236,7 +236,7 @@ build_wcs_buffer (re_string_t *pstr) | |||
| 236 | } | 236 | } |
| 237 | else | 237 | else |
| 238 | p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx; | 238 | p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx; |
| 239 | mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state); | 239 | mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); |
| 240 | if (BE (mbclen == (size_t) -2, 0)) | 240 | if (BE (mbclen == (size_t) -2, 0)) |
| 241 | { | 241 | { |
| 242 | /* The buffer doesn't have enough space, finish to build. */ | 242 | /* The buffer doesn't have enough space, finish to build. */ |
| @@ -306,9 +306,9 @@ build_wcs_upper_buffer (re_string_t *pstr) | |||
| 306 | 306 | ||
| 307 | remain_len = end_idx - byte_idx; | 307 | remain_len = end_idx - byte_idx; |
| 308 | prev_st = pstr->cur_state; | 308 | prev_st = pstr->cur_state; |
| 309 | mbclen = mbrtowc (&wc, | 309 | mbclen = __mbrtowc (&wc, |
| 310 | ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx | 310 | ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx |
| 311 | + byte_idx), remain_len, &pstr->cur_state); | 311 | + byte_idx), remain_len, &pstr->cur_state); |
| 312 | if (BE (mbclen < (size_t) -2, 1)) | 312 | if (BE (mbclen < (size_t) -2, 1)) |
| 313 | { | 313 | { |
| 314 | wchar_t wcu = wc; | 314 | wchar_t wcu = wc; |
| @@ -376,7 +376,7 @@ build_wcs_upper_buffer (re_string_t *pstr) | |||
| 376 | } | 376 | } |
| 377 | else | 377 | else |
| 378 | p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; | 378 | p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; |
| 379 | mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state); | 379 | mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); |
| 380 | if (BE (mbclen < (size_t) -2, 1)) | 380 | if (BE (mbclen < (size_t) -2, 1)) |
| 381 | { | 381 | { |
| 382 | wchar_t wcu = wc; | 382 | wchar_t wcu = wc; |
| @@ -499,8 +499,8 @@ re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) | |||
| 499 | Idx remain_len; | 499 | Idx remain_len; |
| 500 | remain_len = pstr->len - rawbuf_idx; | 500 | remain_len = pstr->len - rawbuf_idx; |
| 501 | prev_st = pstr->cur_state; | 501 | prev_st = pstr->cur_state; |
| 502 | mbclen = mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx, | 502 | mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx, |
| 503 | remain_len, &pstr->cur_state); | 503 | remain_len, &pstr->cur_state); |
| 504 | if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0)) | 504 | if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0)) |
| 505 | { | 505 | { |
| 506 | /* We treat these cases as a single byte character. */ | 506 | /* We treat these cases as a single byte character. */ |
| @@ -687,10 +687,10 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) | |||
| 687 | } | 687 | } |
| 688 | else | 688 | else |
| 689 | { | 689 | { |
| 690 | #ifdef RE_ENABLE_I18N | ||
| 690 | /* No, skip all characters until IDX. */ | 691 | /* No, skip all characters until IDX. */ |
| 691 | Idx prev_valid_len = pstr->valid_len; | 692 | Idx prev_valid_len = pstr->valid_len; |
| 692 | 693 | ||
| 693 | #ifdef RE_ENABLE_I18N | ||
| 694 | if (BE (pstr->offsets_needed, 0)) | 694 | if (BE (pstr->offsets_needed, 0)) |
| 695 | { | 695 | { |
| 696 | pstr->len = pstr->raw_len - idx + offset; | 696 | pstr->len = pstr->raw_len - idx + offset; |
| @@ -745,8 +745,8 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) | |||
| 745 | /* XXX Don't use mbrtowc, we know which conversion | 745 | /* XXX Don't use mbrtowc, we know which conversion |
| 746 | to use (UTF-8 -> UCS4). */ | 746 | to use (UTF-8 -> UCS4). */ |
| 747 | memset (&cur_state, 0, sizeof (cur_state)); | 747 | memset (&cur_state, 0, sizeof (cur_state)); |
| 748 | mbclen = mbrtowc (&wc2, (const char *) p, mlen, | 748 | mbclen = __mbrtowc (&wc2, (const char *) p, mlen, |
| 749 | &cur_state); | 749 | &cur_state); |
| 750 | if (raw + offset - p <= mbclen | 750 | if (raw + offset - p <= mbclen |
| 751 | && mbclen < (size_t) -2) | 751 | && mbclen < (size_t) -2) |
| 752 | { | 752 | { |
| @@ -1689,11 +1689,9 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, | |||
| 1689 | 1689 | ||
| 1690 | for (i = 0 ; i < nodes->nelem ; i++) | 1690 | for (i = 0 ; i < nodes->nelem ; i++) |
| 1691 | { | 1691 | { |
| 1692 | unsigned int constraint = 0; | ||
| 1693 | re_token_t *node = dfa->nodes + nodes->elems[i]; | 1692 | re_token_t *node = dfa->nodes + nodes->elems[i]; |
| 1694 | re_token_type_t type = node->type; | 1693 | re_token_type_t type = node->type; |
| 1695 | if (node->constraint) | 1694 | unsigned int constraint = node->constraint; |
| 1696 | constraint = node->constraint; | ||
| 1697 | 1695 | ||
| 1698 | if (type == CHARACTER && !constraint) | 1696 | if (type == CHARACTER && !constraint) |
| 1699 | continue; | 1697 | continue; |
| @@ -1706,8 +1704,6 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, | |||
| 1706 | newstate->halt = 1; | 1704 | newstate->halt = 1; |
| 1707 | else if (type == OP_BACK_REF) | 1705 | else if (type == OP_BACK_REF) |
| 1708 | newstate->has_backref = 1; | 1706 | newstate->has_backref = 1; |
| 1709 | else if (type == ANCHOR) | ||
| 1710 | constraint = node->opr.ctx_type; | ||
| 1711 | 1707 | ||
| 1712 | if (constraint) | 1708 | if (constraint) |
| 1713 | { | 1709 | { |
