diff options
author | Karl Williamson <khw@cpan.org> | 2014-01-29 03:04:24 +0100 |
---|---|---|
committer | Karl Williamson <public@khwilliamson.com> | 2014-01-28 22:09:39 -0700 |
commit | 4d7db1b9da573ce828cd700a0f88a8e5cf401038 (patch) | |
tree | e94d1c1f4b04c9f2b3008569b11c0ca61e993700 /handy.h | |
parent | ef463b6d87c1ce4e4946bdf785d47e481c1f33f2 (diff) | |
download | perl-4d7db1b9da573ce828cd700a0f88a8e5cf401038.tar.gz |
PATCH: [perl #121109] locales failing
This was due to a logic error in toFOLD_LC() introduced in
31f05a37c4e9c37a7263491f2fc0237d836e1a80. It affected only the code
point at 0xB5 and shows up only in locales in which the character at that
code point is an uppercase letter.
Diffstat (limited to 'handy.h')
-rw-r--r-- | handy.h | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -1310,13 +1310,11 @@ EXTCONST U32 PL_charclass[]; * values "ss"); instead it asserts against that under DEBUGGING, and * otherwise returns its input */ #define _generic_toFOLD_LC(c, function, cast) \ - (LIKELY((c) != MICRO_SIGN) \ - ? (__ASSERT_(! IN_UTF8_CTYPE_LOCALE \ - || (c) != LATIN_SMALL_LETTER_SHARP_S) \ - _generic_toLOWER_LC(c, function, cast)) \ - : (IN_UTF8_CTYPE_LOCALE) \ + ((UNLIKELY((c) == MICRO_SIGN) && IN_UTF8_CTYPE_LOCALE) \ ? GREEK_SMALL_LETTER_MU \ - : (c)) + : (__ASSERT_(! IN_UTF8_CTYPE_LOCALE \ + || (c) != LATIN_SMALL_LETTER_SHARP_S) \ + _generic_toLOWER_LC(c, function, cast))) /* Use the libc versions for these if available. */ #if defined(HAS_ISASCII) && ! defined(USE_NEXT_CTYPE) |