Print this page
2964 need POSIX 2008 locale object support

*** 4,13 **** --- 4,18 ---- * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Paul Borman at Krystal Technologies. * + * Copyright (c) 2011 The FreeBSD Foundation + * All rights reserved. + * Portions of this software were developed by David Chisnall + * under sponsorship from the FreeBSD Foundation. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer.
*** 45,54 **** --- 50,64 ---- #include "mblocal.h" #include "setlocale.h" #include "_ctype.h" #include "../i18n/_locale.h" + /* + * A cached version of the runes for this thread. Used by ctype.h + */ + __thread const _RuneLocale *_ThreadRuneLocale; + extern _RuneLocale *_Read_RuneMagi(FILE *); extern unsigned char __ctype_C[]; static int __setrunelocale(const char *);
*** 248,252 **** --- 258,284 ---- errno = ret; return (_LDP_ERROR); } return (_LDP_LOADED); } + + void + __set_thread_rune_locale(locale_t loc) + { + + if (loc == NULL) { + _ThreadRuneLocale = &_DefaultRuneLocale; + } else { + _ThreadRuneLocale = XLOCALE_CTYPE(loc)->runes; + } + } + + void * + __ctype_load(const char *locale, locale_t unused) + { + struct xlocale_ctype *l; + + l = calloc(sizeof(struct xlocale_ctype), 1); + /* XXX */ + + return (l); + }