]> git.ipfire.org Git - thirdparty/glibc.git/blame - locale/C-collate.c
Convert TEST_extra tests from code to data.
[thirdparty/glibc.git] / locale / C-collate.c
CommitLineData
568035b7 1/* Copyright (C) 1995-2013 Free Software Foundation, Inc.
6d52618b 2 This file is part of the GNU C Library.
52bc074f 3 Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
75cd5204 4
6d52618b 5 The GNU C Library is free software; you can redistribute it and/or
41bdb6e2
AJ
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
75cd5204 9
6d52618b
UD
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2 13 Lesser General Public License for more details.
75cd5204 14
41bdb6e2 15 You should have received a copy of the GNU Lesser General Public
59ba27a6
PE
16 License along with the GNU C Library; if not, see
17 <http://www.gnu.org/licenses/>. */
40deae08 18
ce7a5ef4 19#include <endian.h>
40deae08
RM
20#include "localeinfo.h"
21
acb5ee2e
UD
22static const char collseqmb[] =
23{
24 '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07',
25 '\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f',
26 '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17',
27 '\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f',
28 '\x20', '\x21', '\x22', '\x23', '\x24', '\x25', '\x26', '\x27',
29 '\x28', '\x29', '\x2a', '\x2b', '\x2c', '\x2d', '\x2e', '\x2f',
30 '\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37',
31 '\x38', '\x39', '\x3a', '\x3b', '\x3c', '\x3d', '\x3e', '\x3f',
32 '\x40', '\x41', '\x42', '\x43', '\x44', '\x45', '\x46', '\x47',
33 '\x48', '\x49', '\x4a', '\x4b', '\x4c', '\x4d', '\x4e', '\x4f',
34 '\x50', '\x51', '\x52', '\x53', '\x54', '\x55', '\x56', '\x57',
35 '\x58', '\x59', '\x5a', '\x5b', '\x5c', '\x5d', '\x5e', '\x5f',
36 '\x60', '\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67',
37 '\x68', '\x69', '\x6a', '\x6b', '\x6c', '\x6d', '\x6e', '\x6f',
38 '\x70', '\x71', '\x72', '\x73', '\x74', '\x75', '\x76', '\x77',
39 '\x78', '\x79', '\x7a', '\x7b', '\x7c', '\x7d', '\x7e', '\x7f',
40 '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
41 '\x88', '\x89', '\x8a', '\x8b', '\x8c', '\x8d', '\x8e', '\x8f',
42 '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97',
43 '\x98', '\x99', '\x9a', '\x9b', '\x9c', '\x9d', '\x9e', '\x9f',
44 '\xa0', '\xa1', '\xa2', '\xa3', '\xa4', '\xa5', '\xa6', '\xa7',
45 '\xa8', '\xa9', '\xaa', '\xab', '\xac', '\xad', '\xae', '\xaf',
46 '\xb0', '\xb1', '\xb2', '\xb3', '\xb4', '\xb5', '\xb6', '\xb7',
47 '\xb8', '\xb9', '\xba', '\xbb', '\xbc', '\xbd', '\xbe', '\xbf',
48 '\xc0', '\xc1', '\xc2', '\xc3', '\xc4', '\xc5', '\xc6', '\xc7',
49 '\xc8', '\xc9', '\xca', '\xcb', '\xcc', '\xcd', '\xce', '\xcf',
50 '\xd0', '\xd1', '\xd2', '\xd3', '\xd4', '\xd5', '\xd6', '\xd7',
51 '\xd8', '\xd9', '\xda', '\xdb', '\xdc', '\xdd', '\xde', '\xdf',
52 '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7',
53 '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef',
54 '\xf0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xf7',
55 '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\xfd', '\xfe', '\xff'
56};
57
58static const uint32_t collseqwc[] =
59{
04ea3b0f
UD
60 8, 1, 8, 0x0, 0xff,
61 /* 1st-level table */
62 6 * sizeof (uint32_t),
63 /* 2nd-level table */
64 7 * sizeof (uint32_t),
65 /* 3rd-level table */
acb5ee2e
UD
66 L'\x00', L'\x01', L'\x02', L'\x03', L'\x04', L'\x05', L'\x06', L'\x07',
67 L'\x08', L'\x09', L'\x0a', L'\x0b', L'\x0c', L'\x0d', L'\x0e', L'\x0f',
68 L'\x10', L'\x11', L'\x12', L'\x13', L'\x14', L'\x15', L'\x16', L'\x17',
69 L'\x18', L'\x19', L'\x1a', L'\x1b', L'\x1c', L'\x1d', L'\x1e', L'\x1f',
70 L'\x20', L'\x21', L'\x22', L'\x23', L'\x24', L'\x25', L'\x26', L'\x27',
71 L'\x28', L'\x29', L'\x2a', L'\x2b', L'\x2c', L'\x2d', L'\x2e', L'\x2f',
72 L'\x30', L'\x31', L'\x32', L'\x33', L'\x34', L'\x35', L'\x36', L'\x37',
73 L'\x38', L'\x39', L'\x3a', L'\x3b', L'\x3c', L'\x3d', L'\x3e', L'\x3f',
74 L'\x40', L'\x41', L'\x42', L'\x43', L'\x44', L'\x45', L'\x46', L'\x47',
75 L'\x48', L'\x49', L'\x4a', L'\x4b', L'\x4c', L'\x4d', L'\x4e', L'\x4f',
76 L'\x50', L'\x51', L'\x52', L'\x53', L'\x54', L'\x55', L'\x56', L'\x57',
77 L'\x58', L'\x59', L'\x5a', L'\x5b', L'\x5c', L'\x5d', L'\x5e', L'\x5f',
78 L'\x60', L'\x61', L'\x62', L'\x63', L'\x64', L'\x65', L'\x66', L'\x67',
79 L'\x68', L'\x69', L'\x6a', L'\x6b', L'\x6c', L'\x6d', L'\x6e', L'\x6f',
80 L'\x70', L'\x71', L'\x72', L'\x73', L'\x74', L'\x75', L'\x76', L'\x77',
81 L'\x78', L'\x79', L'\x7a', L'\x7b', L'\x7c', L'\x7d', L'\x7e', L'\x7f',
82 L'\x80', L'\x81', L'\x82', L'\x83', L'\x84', L'\x85', L'\x86', L'\x87',
83 L'\x88', L'\x89', L'\x8a', L'\x8b', L'\x8c', L'\x8d', L'\x8e', L'\x8f',
84 L'\x90', L'\x91', L'\x92', L'\x93', L'\x94', L'\x95', L'\x96', L'\x97',
85 L'\x98', L'\x99', L'\x9a', L'\x9b', L'\x9c', L'\x9d', L'\x9e', L'\x9f',
86 L'\xa0', L'\xa1', L'\xa2', L'\xa3', L'\xa4', L'\xa5', L'\xa6', L'\xa7',
87 L'\xa8', L'\xa9', L'\xaa', L'\xab', L'\xac', L'\xad', L'\xae', L'\xaf',
88 L'\xb0', L'\xb1', L'\xb2', L'\xb3', L'\xb4', L'\xb5', L'\xb6', L'\xb7',
89 L'\xb8', L'\xb9', L'\xba', L'\xbb', L'\xbc', L'\xbd', L'\xbe', L'\xbf',
90 L'\xc0', L'\xc1', L'\xc2', L'\xc3', L'\xc4', L'\xc5', L'\xc6', L'\xc7',
91 L'\xc8', L'\xc9', L'\xca', L'\xcb', L'\xcc', L'\xcd', L'\xce', L'\xcf',
92 L'\xd0', L'\xd1', L'\xd2', L'\xd3', L'\xd4', L'\xd5', L'\xd6', L'\xd7',
93 L'\xd8', L'\xd9', L'\xda', L'\xdb', L'\xdc', L'\xdd', L'\xde', L'\xdf',
94 L'\xe0', L'\xe1', L'\xe2', L'\xe3', L'\xe4', L'\xe5', L'\xe6', L'\xe7',
95 L'\xe8', L'\xe9', L'\xea', L'\xeb', L'\xec', L'\xed', L'\xee', L'\xef',
96 L'\xf0', L'\xf1', L'\xf2', L'\xf3', L'\xf4', L'\xf5', L'\xf6', L'\xf7',
97 L'\xf8', L'\xf9', L'\xfa', L'\xfb', L'\xfc', L'\xfd', L'\xfe', L'\xff'
98};
99
f095bb72 100const struct __locale_data _nl_C_LC_COLLATE attribute_hidden =
40deae08 101{
7a12c6bb 102 _nl_C_name,
df9f41c9
RM
103 NULL, 0, 0, /* no file mapped */
104 { NULL, }, /* no cached data */
a5a0310d 105 UNDELETABLE,
323fb88d 106 0,
e7f21fa6 107 19,
59dd8641 108 {
04ea3b0f 109 /* _NL_COLLATE_NRULES */
0274d73c 110 { .word = 0 },
04ea3b0f 111 /* _NL_COLLATE_RULESETS */
0274d73c 112 { .string = NULL },
04ea3b0f 113 /* _NL_COLLATE_TABLEMB */
0274d73c 114 { .string = NULL },
04ea3b0f 115 /* _NL_COLLATE_WEIGHTMB */
0274d73c 116 { .string = NULL },
04ea3b0f 117 /* _NL_COLLATE_EXTRAMB */
0274d73c 118 { .string = NULL },
04ea3b0f 119 /* _NL_COLLATE_INDIRECTMB */
0274d73c 120 { .string = NULL },
4c7d276e 121 /* _NL_COLLATE_GAP1 */
0274d73c 122 { .string = NULL },
4c7d276e 123 /* _NL_COLLATE_GAP2 */
0274d73c 124 { .string = NULL },
4c7d276e 125 /* _NL_COLLATE_GAP3 */
0274d73c 126 { .string = NULL },
04ea3b0f 127 /* _NL_COLLATE_TABLEWC */
0274d73c 128 { .string = NULL },
04ea3b0f 129 /* _NL_COLLATE_WEIGHTWC */
0274d73c 130 { .string = NULL },
04ea3b0f 131 /* _NL_COLLATE_EXTRAWC */
0274d73c 132 { .string = NULL },
04ea3b0f 133 /* _NL_COLLATE_INDIRECTWC */
0274d73c 134 { .string = NULL },
04ea3b0f 135 /* _NL_COLLATE_SYMB_HASH_SIZEMB */
0274d73c 136 { .string = NULL },
04ea3b0f 137 /* _NL_COLLATE_SYMB_TABLEMB */
0274d73c 138 { .string = NULL },
04ea3b0f 139 /* _NL_COLLATE_SYMB_EXTRAMB */
0274d73c 140 { .string = NULL },
04ea3b0f 141 /* _NL_COLLATE_COLLSEQMB */
0274d73c 142 { .string = collseqmb },
04ea3b0f 143 /* _NL_COLLATE_COLLSEQWC */
0274d73c 144 { .string = (const char *) collseqwc },
e7f21fa6 145 /* _NL_COLLATE_CODESET */
0274d73c 146 { .string = _nl_C_codeset }
59dd8641 147 }
40deae08 148};