diff options
author | Karl Williamson <public@khwilliamson.com> | 2011-02-25 20:10:47 -0700 |
---|---|---|
committer | Karl Williamson <public@khwilliamson.com> | 2011-02-25 21:06:10 -0700 |
commit | 137165a601b852a9679983cdfe8d35be29f0939c (patch) | |
tree | ac4901262ef0166195893dac42877cfe2a2cf33b /utf8.h | |
parent | 273404573a60cac38df0db9b95c63fcaac37419d (diff) | |
download | perl-137165a601b852a9679983cdfe8d35be29f0939c.tar.gz |
Free up bit in ANYOF flags
This is the foundation for fixing the regression RT #82610. My analysis
was wrong that two bits could be shared, at least not without further
work. This changes to use a different mechanism to pass needed
information to regexec.c so that another bit can be freed up and, in a
later commit, the two bits can become unshared again.
The bit that is freed up is ANYOF_UTF8, which basically said there is
something that is matched outside the ANYOF bitmap, and requires the
target string to be in utf8. This changes things so the existence of
something besides the bitmap indicates this, and so no flag is needed.
The flag bit ANYOF_NONBITMAP_NON_UTF8 remains to indicate that there is
something that should be matched outside the bitmap even if the target
string isn't in utf8.
Diffstat (limited to 'utf8.h')
-rw-r--r-- | utf8.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -438,7 +438,7 @@ Perl's extended UTF-8 means we can have start bytes up to FF. #define ANYOF_FOLD_SHARP_S(node, input, end) \ (ANYOF_BITMAP_TEST(node, LATIN_SMALL_LETTER_SHARP_S) && \ - (ANYOF_FLAGS(node) & ANYOF_NONBITMAP) && \ + (ANYOF_NONBITMAP(node)) && \ (ANYOF_FLAGS(node) & ANYOF_LOC_NONBITMAP_FOLD) && \ ((end) > (input) + 1) && \ toLOWER((input)[0]) == 's' && \ |