diff options
| author | Jakob Kaivo <jkk@ung.org> | 2024-05-28 14:56:06 -0400 |
|---|---|---|
| committer | Jakob Kaivo <jkk@ung.org> | 2024-05-28 14:56:06 -0400 |
| commit | b4cd7036bea6c6440fbbcdaebe53c864c87a5646 (patch) | |
| tree | 260670ad9a9637c8c36d84b9cf77ec412017b038 /src/locale/setlocale.c | |
| parent | a69b11fd8974a898a26081950bd4add7c82ea45d (diff) | |
integrate jkmalloc/prep for readonly
Diffstat (limited to 'src/locale/setlocale.c')
| -rw-r--r-- | src/locale/setlocale.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/locale/setlocale.c b/src/locale/setlocale.c index bfc15342..43a69787 100644 --- a/src/locale/setlocale.c +++ b/src/locale/setlocale.c @@ -3,11 +3,13 @@ #include <stdlib.h> #include "_locale.h" #include "_safety.h" +#include "_readonly.h" /** get or set program locale **/ char * setlocale(int category, const char *locale) { + static char *retname = NULL; struct __locale_t *l = __get_locale(); int mask = 0; @@ -42,7 +44,13 @@ char * setlocale(int category, const char *locale) } /* TODO: mark return value read-only */ - return __load_locale(l, mask, locale); + if (retname == NULL) { + retname = __readonly(RO_ALLOC, "setlocale"); + } + __readonly(RO_UNLOCK, retname); + strcpy(retname, __load_locale(l, mask, locale)); + //__readonly(RO_LOCK, retname); + return retname; } CHECK_2(char *, NULL, setlocale, int, const char *) |
