summaryrefslogtreecommitdiff
path: root/src/wctype/wctrans.c
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2024-06-03 13:56:25 -0400
committerJakob Kaivo <jkk@ung.org>2024-06-03 13:56:25 -0400
commita686d047d79bdfc37c096a4fa350c37e4ccf3cf5 (patch)
treeca631b9095454a239211b6f676bdd3e0cb102156 /src/wctype/wctrans.c
parentc575f269ed4a04f89d610b423cc43ce7bd6f008b (diff)
add LC_CTYPE epoch and use separate CT_ categories and CTM_ masks to support detecting change of LC_CTYPE between calls to wctype()/iswctype() and wctrans()/towctrans()
Diffstat (limited to 'src/wctype/wctrans.c')
-rw-r--r--src/wctype/wctrans.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/wctype/wctrans.c b/src/wctype/wctrans.c
index aa47d945..7f724d27 100644
--- a/src/wctype/wctrans.c
+++ b/src/wctype/wctrans.c
@@ -7,11 +7,12 @@ wctrans_t wctrans(const char * property)
{
SIGNAL_SAFE(0);
ASSERT_NONNULL(property);
+ wctrans_t epoch = __get_locale()->ctype_epoch << CT_EPOCH_SHIFT;
if (!strcmp(property, "tolower")) {
- return CT_LOWER;
+ return epoch | CT_LOWER;
} else if (!strcmp(property, "toupper")) {
- return CT_UPPER;
+ return epoch | CT_UPPER;
}
return 0;