merge from gcc
This commit is contained in:
parent
60b89a1878
commit
dc67663583
|
@ -1,3 +1,14 @@
|
||||||
|
2001-08-23 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* regex.c (truncate_wchar): Use wcrtomb not wctomb.
|
||||||
|
|
||||||
|
2001-08-23 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* posix/regex.c [_LIBC] (convert_mbs_to_wcs): Use __mbrtowc
|
||||||
|
instead of mbrtowc.
|
||||||
|
[_LIBC]: Use __iswctype instead of iswctype, __wcslen instead of
|
||||||
|
wcslen, and __wcscoll instead of wcscoll.
|
||||||
|
|
||||||
2001-08-22 Matt Kraai <kraai@alumni.carnegiemellon.edu>
|
2001-08-22 Matt Kraai <kraai@alumni.carnegiemellon.edu>
|
||||||
|
|
||||||
* fibheap.c (fibheap_init, fibnode_init): Remove.
|
* fibheap.c (fibheap_init, fibnode_init): Remove.
|
||||||
|
|
|
@ -1288,7 +1288,11 @@ convert_mbs_to_wcs (dest, src, len, offset_buffer, is_binary)
|
||||||
for( ; mb_remain > 0 ; ++wc_count, ++pdest, mb_remain -= consumed,
|
for( ; mb_remain > 0 ; ++wc_count, ++pdest, mb_remain -= consumed,
|
||||||
psrc += consumed)
|
psrc += consumed)
|
||||||
{
|
{
|
||||||
|
#ifdef _LIBC
|
||||||
|
consumed = __mbrtowc (pdest, psrc, mb_remain, &mbs);
|
||||||
|
#else
|
||||||
consumed = mbrtowc (pdest, psrc, mb_remain, &mbs);
|
consumed = mbrtowc (pdest, psrc, mb_remain, &mbs);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (consumed <= 0)
|
if (consumed <= 0)
|
||||||
/* failed to convert. maybe src contains binary data.
|
/* failed to convert. maybe src contains binary data.
|
||||||
|
@ -4627,9 +4631,16 @@ static unsigned char
|
||||||
truncate_wchar (c)
|
truncate_wchar (c)
|
||||||
CHAR_T c;
|
CHAR_T c;
|
||||||
{
|
{
|
||||||
unsigned char buf[MB_LEN_MAX];
|
unsigned char buf[MB_CUR_MAX];
|
||||||
int retval = wctomb(buf, c);
|
mbstate_t state;
|
||||||
return retval > 0 ? buf[0] : (unsigned char)c;
|
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 */
|
#endif /* WCHAR */
|
||||||
|
|
||||||
|
@ -6337,8 +6348,13 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
|
||||||
& ~(uintptr_t)(__alignof__(wctype_t) - 1);
|
& ~(uintptr_t)(__alignof__(wctype_t) - 1);
|
||||||
wctype = *((wctype_t*)alignedp);
|
wctype = *((wctype_t*)alignedp);
|
||||||
workp += CHAR_CLASS_SIZE;
|
workp += CHAR_CLASS_SIZE;
|
||||||
|
# ifdef _LIBC
|
||||||
|
if (__iswctype((wint_t)c, wctype))
|
||||||
|
goto char_set_matched;
|
||||||
|
# else
|
||||||
if (iswctype((wint_t)c, wctype))
|
if (iswctype((wint_t)c, wctype))
|
||||||
goto char_set_matched;
|
goto char_set_matched;
|
||||||
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* match with collating_symbol? */
|
/* match with collating_symbol? */
|
||||||
|
@ -6374,12 +6390,20 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
|
||||||
for (workp2 = workp + coll_symbol_length ; workp < workp2 ;)
|
for (workp2 = workp + coll_symbol_length ; workp < workp2 ;)
|
||||||
{
|
{
|
||||||
const CHAR_T *backup_d = d, *backup_dend = dend;
|
const CHAR_T *backup_d = d, *backup_dend = dend;
|
||||||
length = wcslen(workp);
|
# ifdef _LIBC
|
||||||
|
length = __wcslen (workp);
|
||||||
|
# else
|
||||||
|
length = wcslen (workp);
|
||||||
|
# endif
|
||||||
|
|
||||||
/* If wcscoll(the collating symbol, whole string) > 0,
|
/* If wcscoll(the collating symbol, whole string) > 0,
|
||||||
any substring of the string never match with the
|
any substring of the string never match with the
|
||||||
collating symbol. */
|
collating symbol. */
|
||||||
if (wcscoll(workp, d) > 0)
|
# ifdef _LIBC
|
||||||
|
if (__wcscoll (workp, d) > 0)
|
||||||
|
# else
|
||||||
|
if (wcscoll (workp, d) > 0)
|
||||||
|
# endif
|
||||||
{
|
{
|
||||||
workp += length + 1;
|
workp += length + 1;
|
||||||
continue;
|
continue;
|
||||||
|
@ -6404,7 +6428,11 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
|
||||||
str_buf[i] = TRANSLATE(*d);
|
str_buf[i] = TRANSLATE(*d);
|
||||||
str_buf[i+1] = '\0';
|
str_buf[i+1] = '\0';
|
||||||
|
|
||||||
match = wcscoll(workp, str_buf);
|
# ifdef _LIBC
|
||||||
|
match = __wcscoll (workp, str_buf);
|
||||||
|
# else
|
||||||
|
match = wcscoll (workp, str_buf);
|
||||||
|
# endif
|
||||||
if (match == 0)
|
if (match == 0)
|
||||||
goto char_set_matched;
|
goto char_set_matched;
|
||||||
|
|
||||||
|
@ -6515,12 +6543,20 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
|
||||||
for (workp2 = workp + equiv_class_length ; workp < workp2 ;)
|
for (workp2 = workp + equiv_class_length ; workp < workp2 ;)
|
||||||
{
|
{
|
||||||
const CHAR_T *backup_d = d, *backup_dend = dend;
|
const CHAR_T *backup_d = d, *backup_dend = dend;
|
||||||
length = wcslen(workp);
|
# ifdef _LIBC
|
||||||
|
length = __wcslen (workp);
|
||||||
|
# else
|
||||||
|
length = wcslen (workp);
|
||||||
|
# endif
|
||||||
|
|
||||||
/* If wcscoll(the collating symbol, whole string) > 0,
|
/* If wcscoll(the collating symbol, whole string) > 0,
|
||||||
any substring of the string never match with the
|
any substring of the string never match with the
|
||||||
collating symbol. */
|
collating symbol. */
|
||||||
if (wcscoll(workp, d) > 0)
|
# ifdef _LIBC
|
||||||
|
if (__wcscoll (workp, d) > 0)
|
||||||
|
# else
|
||||||
|
if (wcscoll (workp, d) > 0)
|
||||||
|
# endif
|
||||||
{
|
{
|
||||||
workp += length + 1;
|
workp += length + 1;
|
||||||
break;
|
break;
|
||||||
|
@ -6545,7 +6581,11 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
|
||||||
str_buf[i] = TRANSLATE(*d);
|
str_buf[i] = TRANSLATE(*d);
|
||||||
str_buf[i+1] = '\0';
|
str_buf[i+1] = '\0';
|
||||||
|
|
||||||
match = wcscoll(workp, str_buf);
|
# ifdef _LIBC
|
||||||
|
match = __wcscoll (workp, str_buf);
|
||||||
|
# else
|
||||||
|
match = wcscoll (workp, str_buf);
|
||||||
|
# endif
|
||||||
|
|
||||||
if (match == 0)
|
if (match == 0)
|
||||||
goto char_set_matched;
|
goto char_set_matched;
|
||||||
|
@ -6568,7 +6608,7 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* match with char_range? */
|
/* match with char_range? */
|
||||||
#ifdef _LIBC
|
# ifdef _LIBC
|
||||||
if (nrules != 0)
|
if (nrules != 0)
|
||||||
{
|
{
|
||||||
uint32_t collseqval;
|
uint32_t collseqval;
|
||||||
|
@ -6591,7 +6631,7 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
# endif
|
||||||
{
|
{
|
||||||
/* We set range_start_char at str_buf[0], range_end_char
|
/* We set range_start_char at str_buf[0], range_end_char
|
||||||
at str_buf[4], and compared char at str_buf[2]. */
|
at str_buf[4], and compared char at str_buf[2]. */
|
||||||
|
@ -6627,9 +6667,13 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
|
||||||
range_end_char = str_buf + 4;
|
range_end_char = str_buf + 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wcscoll(range_start_char, str_buf+2) <= 0 &&
|
# ifdef _LIBC
|
||||||
wcscoll(str_buf+2, range_end_char) <= 0)
|
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;
|
goto char_set_matched;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue