summaryrefslogtreecommitdiff
path: root/handy.h
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2019-02-04 14:07:11 -0700
committerKarl Williamson <khw@cpan.org>2019-02-05 11:44:29 -0700
commitb257a28c3a214073e8f73ee768a25f96c841e422 (patch)
tree8b0394e4f83f543f51cc8624b06db2ce71a15b37 /handy.h
parentb8df1494dd61a03039c2dccfa4b1c02a73dda991 (diff)
downloadperl-b257a28c3a214073e8f73ee768a25f96c841e422.tar.gz
utf8.c: Add functions for Turkic locale case changing
These override the normal handling of UTF-8 locale case changing. They aren't actually called yet, until later in this series of commits.
Diffstat (limited to 'handy.h')
-rw-r--r--handy.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/handy.h b/handy.h
index 954b9caa30..57ad62dc61 100644
--- a/handy.h
+++ b/handy.h
@@ -1542,7 +1542,7 @@ END_EXTERN_C
/* These next three are also for internal core Perl use only: case-change
* helper macros. The reason for using the PL_latin arrays is in case the
* system function is defective; it ensures uniform results that conform to the
- * Unicod standard. */
+ * Unicod standard. It does not handle the anomalies in UTF-8 Turkic locales */
#define _generic_toLOWER_LC(c, function, cast) (! FITS_IN_8_BITS(c) \
? (c) \
: (IN_UTF8_CTYPE_LOCALE) \
@@ -1553,7 +1553,8 @@ END_EXTERN_C
* returns a single value, so can't adequately return the upper case of LATIN
* SMALL LETTER SHARP S in a UTF-8 locale (which should be a string of two
* values "SS"); instead it asserts against that under DEBUGGING, and
- * otherwise returns its input */
+ * otherwise returns its input. It does not handle the anomalies in UTF-8
+ * Turkic locales. */
#define _generic_toUPPER_LC(c, function, cast) \
(! FITS_IN_8_BITS(c) \
? (c) \
@@ -1571,7 +1572,8 @@ END_EXTERN_C
* returns a single value, so can't adequately return the fold case of LATIN
* SMALL LETTER SHARP S in a UTF-8 locale (which should be a string of two
* values "ss"); instead it asserts against that under DEBUGGING, and
- * otherwise returns its input */
+ * otherwise returns its input. It does not handle the anomalies in UTF-8
+ * Turkic locales */
#define _generic_toFOLD_LC(c, function, cast) \
((UNLIKELY((c) == MICRO_SIGN) && IN_UTF8_CTYPE_LOCALE) \
? GREEK_SMALL_LETTER_MU \