bugzilla 612 - write recipients list in X-Envelope-To header of MBOX spool file
[exim.git] / src / src / pcre / pcre_chartables.c
1 /* $Cambridge: exim/src/src/pcre/pcre_chartables.c,v 1.2 2007/11/12 13:02:19 nm4 Exp $ */
2
3 /*************************************************
4 *      Perl-Compatible Regular Expressions       *
5 *************************************************/
6
7 /* This file contains character tables that are used when no external tables
8 are passed to PCRE by the application that calls it. The tables are used only
9 for characters whose code values are less than 256.
10
11 This is a default version of the tables that assumes ASCII encoding. A program
12 called dftables (which is distributed with PCRE) can be used to build
13 alternative versions of this file. This is necessary if you are running in an
14 EBCDIC environment, or if you want to default to a different encoding, for
15 example ISO-8859-1. When dftables is run, it creates these tables in the
16 current locale. If PCRE is configured with --enable-rebuild-chartables, this
17 happens automatically.
18
19 The following #includes are present because without the gcc 4.x may remove the
20 array definition from the final binary if PCRE is built into a static library
21 and dead code stripping is activated. This leads to link errors. Pulling in the
22 header ensures that the array gets flagged as "someone outside this compilation
23 unit might reference this" and so it will always be supplied to the linker. */
24
25 #ifdef HAVE_CONFIG_H
26 #include "config.h"
27 #endif
28
29 #include "pcre_internal.h"
30
31 const unsigned char _pcre_default_tables[] = {
32
33 /* This table is a lower casing table. */
34
35     0,  1,  2,  3,  4,  5,  6,  7,
36     8,  9, 10, 11, 12, 13, 14, 15,
37    16, 17, 18, 19, 20, 21, 22, 23,
38    24, 25, 26, 27, 28, 29, 30, 31,
39    32, 33, 34, 35, 36, 37, 38, 39,
40    40, 41, 42, 43, 44, 45, 46, 47,
41    48, 49, 50, 51, 52, 53, 54, 55,
42    56, 57, 58, 59, 60, 61, 62, 63,
43    64, 97, 98, 99,100,101,102,103,
44   104,105,106,107,108,109,110,111,
45   112,113,114,115,116,117,118,119,
46   120,121,122, 91, 92, 93, 94, 95,
47    96, 97, 98, 99,100,101,102,103,
48   104,105,106,107,108,109,110,111,
49   112,113,114,115,116,117,118,119,
50   120,121,122,123,124,125,126,127,
51   128,129,130,131,132,133,134,135,
52   136,137,138,139,140,141,142,143,
53   144,145,146,147,148,149,150,151,
54   152,153,154,155,156,157,158,159,
55   160,161,162,163,164,165,166,167,
56   168,169,170,171,172,173,174,175,
57   176,177,178,179,180,181,182,183,
58   184,185,186,187,188,189,190,191,
59   192,193,194,195,196,197,198,199,
60   200,201,202,203,204,205,206,207,
61   208,209,210,211,212,213,214,215,
62   216,217,218,219,220,221,222,223,
63   224,225,226,227,228,229,230,231,
64   232,233,234,235,236,237,238,239,
65   240,241,242,243,244,245,246,247,
66   248,249,250,251,252,253,254,255,
67
68 /* This table is a case flipping table. */
69
70     0,  1,  2,  3,  4,  5,  6,  7,
71     8,  9, 10, 11, 12, 13, 14, 15,
72    16, 17, 18, 19, 20, 21, 22, 23,
73    24, 25, 26, 27, 28, 29, 30, 31,
74    32, 33, 34, 35, 36, 37, 38, 39,
75    40, 41, 42, 43, 44, 45, 46, 47,
76    48, 49, 50, 51, 52, 53, 54, 55,
77    56, 57, 58, 59, 60, 61, 62, 63,
78    64, 97, 98, 99,100,101,102,103,
79   104,105,106,107,108,109,110,111,
80   112,113,114,115,116,117,118,119,
81   120,121,122, 91, 92, 93, 94, 95,
82    96, 65, 66, 67, 68, 69, 70, 71,
83    72, 73, 74, 75, 76, 77, 78, 79,
84    80, 81, 82, 83, 84, 85, 86, 87,
85    88, 89, 90,123,124,125,126,127,
86   128,129,130,131,132,133,134,135,
87   136,137,138,139,140,141,142,143,
88   144,145,146,147,148,149,150,151,
89   152,153,154,155,156,157,158,159,
90   160,161,162,163,164,165,166,167,
91   168,169,170,171,172,173,174,175,
92   176,177,178,179,180,181,182,183,
93   184,185,186,187,188,189,190,191,
94   192,193,194,195,196,197,198,199,
95   200,201,202,203,204,205,206,207,
96   208,209,210,211,212,213,214,215,
97   216,217,218,219,220,221,222,223,
98   224,225,226,227,228,229,230,231,
99   232,233,234,235,236,237,238,239,
100   240,241,242,243,244,245,246,247,
101   248,249,250,251,252,253,254,255,
102
103 /* This table contains bit maps for various character classes. Each map is 32
104 bytes long and the bits run from the least significant end of each byte. The
105 classes that have their own maps are: space, xdigit, digit, upper, lower, word,
106 graph, print, punct, and cntrl. Other classes are built from combinations. */
107
108   0x00,0x3e,0x00,0x00,0x01,0x00,0x00,0x00,
109   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
110   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
111   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
112
113   0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
114   0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
115   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
116   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
117
118   0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
119   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
120   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
121   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
122
123   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
124   0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0x00,
125   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
126   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
127
128   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
129   0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x07,
130   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
131   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
132
133   0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
134   0xfe,0xff,0xff,0x87,0xfe,0xff,0xff,0x07,
135   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
136   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
137
138   0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,
139   0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
140   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
141   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
142
143   0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,
144   0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
145   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
146   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
147
148   0x00,0x00,0x00,0x00,0xfe,0xff,0x00,0xfc,
149   0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x78,
150   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
151   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
152
153   0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
154   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
155   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
156   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
157
158 /* This table identifies various classes of character by individual bits:
159   0x01   white space character
160   0x02   letter
161   0x04   decimal digit
162   0x08   hexadecimal digit
163   0x10   alphanumeric or '_'
164   0x80   regular expression metacharacter or binary zero
165 */
166
167   0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   0-  7 */
168   0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00, /*   8- 15 */
169   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  16- 23 */
170   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  24- 31 */
171   0x01,0x00,0x00,0x00,0x80,0x00,0x00,0x00, /*    - '  */
172   0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x00, /*  ( - /  */
173   0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /*  0 - 7  */
174   0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x80, /*  8 - ?  */
175   0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /*  @ - G  */
176   0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  H - O  */
177   0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  P - W  */
178   0x12,0x12,0x12,0x80,0x80,0x00,0x80,0x10, /*  X - _  */
179   0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /*  ` - g  */
180   0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  h - o  */
181   0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  p - w  */
182   0x12,0x12,0x12,0x80,0x80,0x00,0x00,0x00, /*  x -127 */
183   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */
184   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */
185   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */
186   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */
187   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */
188   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */
189   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */
190   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */
191   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */
192   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */
193   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */
194   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */
195   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */
196   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */
197   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */
198   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */
199
200 /* End of pcre_chartables.c */