Fix ranges with multibyte characters as endpoints.
commit815d8147a3418334ffa91e2384c6e159f0809d65
authorPaolo Bonzini <bonzini@gnu.org>
Wed, 18 Nov 2009 00:23:24 +0000 (17 16:23 -0800)
committerUlrich Drepper <drepper@redhat.com>
Wed, 18 Nov 2009 00:23:24 +0000 (17 16:23 -0800)
tree164ba2a49c0a9287af8894c6c12c12e3d5b33dc8
parent7443244740724babd575943ee33c45da326afbe7
Fix ranges with multibyte characters as endpoints.

This is another bug in computing the fastmap.  It was reported by a user
of sed because it usually does not happen with !_LIBC.  However, it is
there in that case too.

The bug is that whenever we have a range at the beginning of the regex,
the regex must be tested on any possible multibyte character.  The reason
why _LIBC masks it, is that in general there is a collation symbol for
each possible multibyte-character lead byte, so all the lead bytes are
in general already part of the fastmap.

The tests use cyrillic characters as an example.  With _LIBC, they pass
without the patch too, but you can make them fail by removing collation
symbols handling.
ChangeLog
posix/Makefile
posix/bug-regex30.c [new file with mode: 0644]
posix/regcomp.c