X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/9385eb3d10ebe5eb398c52040ec3dbfba9b0cdcf..2be56ee90c5c5bee77895b8787a43e894249002b:/locale/FreeBSD/wctrans.c diff --git a/locale/FreeBSD/wctrans.c b/locale/FreeBSD/wctrans.c index d056bfa..30ca5b9 100644 --- a/locale/FreeBSD/wctrans.c +++ b/locale/FreeBSD/wctrans.c @@ -25,9 +25,10 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/wctrans.c,v 1.2 2002/11/09 05:19:08 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/wctrans.c,v 1.3 2003/11/01 08:20:58 tjr Exp $"); + +#include "xlocale_private.h" -#include #include #include #include @@ -38,19 +39,17 @@ enum { _WCT_TOUPPER = 2 }; -/* - * TODO: Supply a macro version of this. - */ wint_t -towctrans(wint_t wc, wctrans_t desc) +towctrans_l(wint_t wc, wctrans_t desc, locale_t loc) { + NORMALIZE_LOCALE(loc); switch (desc) { case _WCT_TOLOWER: - wc = towlower(wc); + wc = towlower_l(wc, loc); break; case _WCT_TOUPPER: - wc = towupper(wc); + wc = towupper_l(wc, loc); break; case _WCT_ERROR: default: @@ -61,6 +60,12 @@ towctrans(wint_t wc, wctrans_t desc) return (wc); } +wint_t +towctrans(wint_t wc, wctrans_t desc) +{ + return towctrans_l(wc, desc, __current_locale()); +} + wctrans_t wctrans(const char *charclass) { @@ -82,3 +87,14 @@ wctrans(const char *charclass) errno = EINVAL; return (ccls[i].trans); } + +/* + * The extended locale version just calls the regular version. If there + * is ever support for arbitrary per-locale translations, this need to + * be modified. + */ +wctrans_t +wctrans_l(const char *charclass, locale_t loc) +{ + return wctrans(charclass); +}