diff options
author | Karl Williamson <public@khwilliamson.com> | 2012-02-28 10:11:35 -0700 |
---|---|---|
committer | Karl Williamson <public@khwilliamson.com> | 2012-02-28 10:24:52 -0700 |
commit | b4069bca6054692e4fffa8e9e04572511e910fbd (patch) | |
tree | 1f840d06fa883007d35290ad1f411960c583b596 /charclass_invlists.h | |
parent | 5ef3c22d461004ed95fd0cee11e2926f8b87bc7c (diff) | |
download | perl-b4069bca6054692e4fffa8e9e04572511e910fbd.tar.gz |
Patch [perl #111400] [:upper:] broken for above Latin1
This was an off-by-one error caused by my failing to realize that things
had to be done differently at the 255/256 boundary depending on whether
U+00FF matched or did not match the property.
Two properties were affected, [:upper:] and [:punct:]. The bug was that
all code points above the first one > 255 that legitimately matches the
property will match whether or not they should. In the case of
[:upper:], this meant that effectively anything from 256..infinity
matched. For [:punct:], it was anything above U+037D.
Diffstat (limited to 'charclass_invlists.h')
-rw-r--r-- | charclass_invlists.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/charclass_invlists.h b/charclass_invlists.h index 152793a2e6..368410fd37 100644 --- a/charclass_invlists.h +++ b/charclass_invlists.h @@ -359,7 +359,7 @@ UV PosixPunct_invlist[] = { }; UV L1PosixPunct_invlist[] = { - 21, /* Number of elements */ + 20, /* Number of elements */ 0, /* Current iteration position */ 1064334010, /* Version and data structure type */ 1, /* 0 if this is the first element of the list proper; @@ -383,8 +383,7 @@ UV L1PosixPunct_invlist[] = { 187, 188, 191, - 192, - 894 + 192 }; UV PosixSpace_invlist[] = { @@ -440,7 +439,7 @@ UV PosixUpper_invlist[] = { }; UV L1PosixUpper_invlist[] = { - 7, /* Number of elements */ + 6, /* Number of elements */ 0, /* Current iteration position */ 1064334010, /* Version and data structure type */ 1, /* 0 if this is the first element of the list proper; @@ -450,8 +449,7 @@ UV L1PosixUpper_invlist[] = { 192, 215, 216, - 223, - 256 + 223 }; UV PosixWord_invlist[] = { |