table.c revision 132820
11573Srgrimes/*-
21573Srgrimes * Copyright (c) 1993
31573Srgrimes *	The Regents of the University of California.  All rights reserved.
41573Srgrimes *
51573Srgrimes * This code is derived from software contributed to Berkeley by
61573Srgrimes * Paul Borman at Krystal Technologies.
71573Srgrimes *
81573Srgrimes * Redistribution and use in source and binary forms, with or without
91573Srgrimes * modification, are permitted provided that the following conditions
101573Srgrimes * are met:
111573Srgrimes * 1. Redistributions of source code must retain the above copyright
121573Srgrimes *    notice, this list of conditions and the following disclaimer.
131573Srgrimes * 2. Redistributions in binary form must reproduce the above copyright
141573Srgrimes *    notice, this list of conditions and the following disclaimer in the
151573Srgrimes *    documentation and/or other materials provided with the distribution.
161573Srgrimes * 3. All advertising materials mentioning features or use of this software
171573Srgrimes *    must display the following acknowledgement:
181573Srgrimes *	This product includes software developed by the University of
191573Srgrimes *	California, Berkeley and its contributors.
201573Srgrimes * 4. Neither the name of the University nor the names of its contributors
211573Srgrimes *    may be used to endorse or promote products derived from this software
221573Srgrimes *    without specific prior written permission.
231573Srgrimes *
241573Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
251573Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
261573Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
271573Srgrimes * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
281573Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
291573Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
301573Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
311573Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
321573Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
331573Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
341573Srgrimes * SUCH DAMAGE.
351573Srgrimes */
361573Srgrimes
371573Srgrimes#if defined(LIBC_SCCS) && !defined(lint)
381573Srgrimesstatic char sccsid[] = "@(#)table.c	8.1 (Berkeley) 6/27/93";
391573Srgrimes#endif /* LIBC_SCCS and not lint */
4092986Sobrien#include <sys/cdefs.h>
4192986Sobrien__FBSDID("$FreeBSD: head/lib/libc/locale/table.c 132820 2004-07-29 06:16:19Z tjr $");
421573Srgrimes
431573Srgrimes#include <ctype.h>
44132820Stjr#include <runetype.h>
45121845Stjr#include <wchar.h>
46129153Stjr#include "mblocal.h"
471573Srgrimes
481573Srgrimes_RuneLocale _DefaultRuneLocale = {
491573Srgrimes    _RUNE_MAGIC_1,
5061218Sache    "NONE",
51121845Stjr    __emulated_sgetrune,
52121845Stjr    __emulated_sputrune,
531573Srgrimes    0xFFFD,
541573Srgrimes
5557035Sobrien    {	/*00*/	_CTYPE_C,
5657035Sobrien		_CTYPE_C,
5757035Sobrien		_CTYPE_C,
5857035Sobrien		_CTYPE_C,
5957035Sobrien		_CTYPE_C,
6057035Sobrien		_CTYPE_C,
6157035Sobrien		_CTYPE_C,
6257035Sobrien		_CTYPE_C,
6357035Sobrien	/*08*/	_CTYPE_C,
6457035Sobrien		_CTYPE_C|_CTYPE_S|_CTYPE_B,
6557035Sobrien		_CTYPE_C|_CTYPE_S,
6657035Sobrien		_CTYPE_C|_CTYPE_S,
6757035Sobrien		_CTYPE_C|_CTYPE_S,
6857035Sobrien		_CTYPE_C|_CTYPE_S,
6957035Sobrien		_CTYPE_C,
7057035Sobrien		_CTYPE_C,
7157035Sobrien	/*10*/	_CTYPE_C,
7257035Sobrien		_CTYPE_C,
7357035Sobrien		_CTYPE_C,
7457035Sobrien		_CTYPE_C,
7557035Sobrien		_CTYPE_C,
7657035Sobrien		_CTYPE_C,
7757035Sobrien		_CTYPE_C,
7857035Sobrien		_CTYPE_C,
7957035Sobrien	/*18*/	_CTYPE_C,
8057035Sobrien		_CTYPE_C,
8157035Sobrien		_CTYPE_C,
8257035Sobrien		_CTYPE_C,
8357035Sobrien		_CTYPE_C,
8457035Sobrien		_CTYPE_C,
8557035Sobrien		_CTYPE_C,
8657035Sobrien		_CTYPE_C,
8757035Sobrien	/*20*/	_CTYPE_S|_CTYPE_B|_CTYPE_R,
8857035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
8957035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
9057035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
9157035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
9257035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
9357035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
9457035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
9557035Sobrien	/*28*/	_CTYPE_P|_CTYPE_R|_CTYPE_G,
9657035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
9757035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
9857035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
9957035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
10057035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
10157035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
10257035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
10357035Sobrien	/*30*/	_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|0,
10457035Sobrien		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|1,
10557035Sobrien		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|2,
10657035Sobrien		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|3,
10757035Sobrien		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|4,
10857035Sobrien		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|5,
10957035Sobrien		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|6,
11057035Sobrien		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|7,
11157035Sobrien	/*38*/	_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|8,
11257035Sobrien		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|9,
11357035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
11457035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
11557035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
11657035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
11757035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
11857035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
11957035Sobrien	/*40*/	_CTYPE_P|_CTYPE_R|_CTYPE_G,
12057035Sobrien		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|10,
12157035Sobrien		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|11,
12257035Sobrien		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|12,
12357035Sobrien		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|13,
12457035Sobrien		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|14,
12557035Sobrien		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|15,
12657035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
12757035Sobrien	/*48*/	_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
12857035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
12957035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13057035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13157035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13257035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13357035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13457035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13557035Sobrien	/*50*/	_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13657035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13757035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13857035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
13957035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
14057035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
14157035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
14257035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
14357035Sobrien	/*58*/	_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
14457035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
14557035Sobrien		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
14657035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
14757035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
14857035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
14957035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
15057035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
15157035Sobrien	/*60*/	_CTYPE_P|_CTYPE_R|_CTYPE_G,
15257035Sobrien		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|10,
15357035Sobrien		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|11,
15457035Sobrien		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|12,
15557035Sobrien		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|13,
15657035Sobrien		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|14,
15757035Sobrien		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|15,
15857035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
15957035Sobrien	/*68*/	_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16057035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16157035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16257035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16357035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16457035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16557035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16657035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16757035Sobrien	/*70*/	_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16857035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
16957035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
17057035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
17157035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
17257035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
17357035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
17457035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
17557035Sobrien	/*78*/	_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
17657035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
17757035Sobrien		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
17857035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
17957035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
18057035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
18157035Sobrien		_CTYPE_P|_CTYPE_R|_CTYPE_G,
18257035Sobrien		_CTYPE_C,
1831573Srgrimes    },
1841573Srgrimes    {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
1851573Srgrimes     	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
1861573Srgrimes	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
1871573Srgrimes     	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
1881573Srgrimes	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
1891573Srgrimes     	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
1901573Srgrimes	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
1911573Srgrimes     	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
1921573Srgrimes	0x40,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
1931573Srgrimes     	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
1941573Srgrimes	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
1951573Srgrimes     	'x',	'y',	'z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
1961573Srgrimes	0x60,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
1971573Srgrimes     	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
1981573Srgrimes	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
1991573Srgrimes     	'x',	'y',	'z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
2001573Srgrimes	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
2011573Srgrimes     	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
2021573Srgrimes	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
2031573Srgrimes     	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
2041573Srgrimes	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
2051573Srgrimes     	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
2061573Srgrimes	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
2071573Srgrimes     	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
2081573Srgrimes	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
2091573Srgrimes     	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
2101573Srgrimes	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
2111573Srgrimes     	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
2121573Srgrimes	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
2131573Srgrimes     	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
2141573Srgrimes	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
2151573Srgrimes     	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
2161573Srgrimes    },
2171573Srgrimes    {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
2181573Srgrimes     	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
2191573Srgrimes	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
2201573Srgrimes     	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
2211573Srgrimes	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
2221573Srgrimes     	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
2231573Srgrimes	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
2241573Srgrimes     	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
2251573Srgrimes	0x40,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
2261573Srgrimes     	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
2271573Srgrimes	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
2281573Srgrimes     	'X',	'Y',	'Z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
2291573Srgrimes	0x60,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
2301573Srgrimes     	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
2311573Srgrimes	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
2321573Srgrimes     	'X',	'Y',	'Z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
2331573Srgrimes	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
2341573Srgrimes     	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
2351573Srgrimes	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
2361573Srgrimes     	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
2371573Srgrimes	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
2381573Srgrimes     	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
2391573Srgrimes	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
2401573Srgrimes     	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
2411573Srgrimes	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
2421573Srgrimes     	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
2431573Srgrimes	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
2441573Srgrimes     	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
2451573Srgrimes	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
2461573Srgrimes     	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
2471573Srgrimes	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
2481573Srgrimes     	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
2491573Srgrimes    },
2501573Srgrimes};
2511573Srgrimes
2521573Srgrimes_RuneLocale *_CurrentRuneLocale = &_DefaultRuneLocale;
2531573Srgrimes
2541573Srgrimesint __mb_cur_max = 1;
255121845Stjrsize_t (*__mbrtowc)(wchar_t * __restrict, const char * __restrict, size_t,
256121845Stjr    mbstate_t * __restrict) = _none_mbrtowc;
257128004Stjrint (*__mbsinit)(const mbstate_t *) = _none_mbsinit;
258132497Stjrsize_t (*__mbsnrtowcs)(wchar_t * __restrict, const char ** __restrict,
259132497Stjr    size_t, size_t, mbstate_t * __restrict) = _none_mbsnrtowcs;
260121845Stjrsize_t (*__wcrtomb)(char * __restrict, wchar_t, mbstate_t * __restrict) =
261121845Stjr    _none_wcrtomb;
262132497Stjrsize_t (*__wcsnrtombs)(char * __restrict, const wchar_t ** __restrict,
263132497Stjr    size_t, size_t, mbstate_t * __restrict) = _none_wcsnrtombs;
264