diff options
author | Jakob Kaivo <jkk@ung.org> | 2024-06-03 13:56:25 -0400 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2024-06-03 13:56:25 -0400 |
commit | a686d047d79bdfc37c096a4fa350c37e4ccf3cf5 (patch) | |
tree | ca631b9095454a239211b6f676bdd3e0cb102156 /src/locale/setlocale.c | |
parent | c575f269ed4a04f89d610b423cc43ce7bd6f008b (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/locale/setlocale.c')
-rw-r--r-- | src/locale/setlocale.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/locale/setlocale.c b/src/locale/setlocale.c index 86c44a5f..22779792 100644 --- a/src/locale/setlocale.c +++ b/src/locale/setlocale.c @@ -72,9 +72,14 @@ char * setlocale(int category, const char *locale) name_to_return = __load_locale(l, mask, locale); } - __readonly(RO_UNLOCK, retname); - strcpy(retname, name_to_return); - __readonly(RO_LOCK, retname); + if (name_to_return != NULL) { + __readonly(RO_UNLOCK, retname); + strcpy(retname, name_to_return); + __readonly(RO_LOCK, retname); + } else { + retname = NULL; + } + return retname; } |