Chameleon

Chameleon Svn Source Tree

Root/tags/2.0/i386/include/runetype.h

Source at commit 1808 created 12 years 3 months ago.
By blackosx, Revise layout of package installer 'Welcome' file so it looks cleaner. Change the copyright notice to begin from 2009 as seen in the Chameleon 2.0 r431 installer. Should this date be set earlier?
1/*-
2 * Copyright (c) 1993
3 *The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Paul Borman at Krystal Technologies.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 *This product includes software developed by the University of
19 *California, Berkeley and its contributors.
20 * 4. Neither the name of the University nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 *@(#)runetype.h8.1 (Berkeley) 6/2/93
37 */
38
39#ifndef_RUNETYPE_H_
40#define_RUNETYPE_H_
41
42#include <_types.h>
43
44#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
45
46#ifndef_SIZE_T
47#define _SIZE_T
48typedef__darwin_size_tsize_t;
49#endif
50
51#ifndef_CT_RUNE_T
52#define _CT_RUNE_T
53typedef__darwin_ct_rune_tct_rune_t;
54#endif
55
56#ifndef_RUNE_T
57#define _RUNE_T
58typedef__darwin_rune_trune_t;
59#endif
60
61#ifndef__cplusplus
62#ifndef_WCHAR_T
63#define_WCHAR_T
64typedef__darwin_wchar_twchar_t;
65#endif/* _WCHAR_T */
66#endif/* __cplusplus */
67
68#ifndef_WINT_T
69#define _WINT_T
70typedef__darwin_wint_twint_t;
71#endif
72
73#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
74
75#define_CACHED_RUNES(1 <<8 )/* Must be a power of 2 */
76#define_CRMASK(~(_CACHED_RUNES - 1))
77
78/*
79 * The lower 8 bits of runetype[] contain the digit value of the rune.
80 */
81typedef struct {
82__darwin_rune_t__min;/* First rune of the range */
83__darwin_rune_t__max;/* Last rune (inclusive) of the range */
84__darwin_rune_t__map;/* What first maps to in maps */
85__uint32_t*__types;/* Array of types in range */
86} _RuneEntry;
87
88typedef struct {
89int__nranges;/* Number of ranges stored */
90_RuneEntry*__ranges;/* Pointer to the ranges */
91} _RuneRange;
92
93typedef struct {
94char__name[14];/* CHARCLASS_NAME_MAX = 14 */
95__uint32_t__mask;/* charclass mask */
96} _RuneCharClass;
97
98typedef struct {
99char__magic[8];/* Magic saying what version we are */
100char__encoding[32];/* ASCII name of this encoding */
101
102__darwin_rune_t(*__sgetrune)(const char *, __darwin_size_t, char const **);
103int(*__sputrune)(__darwin_rune_t, char *, __darwin_size_t, char **);
104__darwin_rune_t__invalid_rune;
105
106__uint32_t__runetype[_CACHED_RUNES];
107__darwin_rune_t__maplower[_CACHED_RUNES];
108__darwin_rune_t__mapupper[_CACHED_RUNES];
109
110/*
111 * The following are to deal with Runes larger than _CACHED_RUNES - 1.
112 * Their data is actually contiguous with this structure so as to make
113 * it easier to read/write from/to disk.
114 */
115_RuneRange__runetype_ext;
116_RuneRange__maplower_ext;
117_RuneRange__mapupper_ext;
118
119void*__variable;/* Data which depends on the encoding */
120int__variable_len;/* how long that data is */
121
122/*
123 * extra fields to deal with arbitrary character classes
124 */
125int__ncharclasses;
126_RuneCharClass*__charclasses;
127} _RuneLocale;
128
129#define_RUNE_MAGIC_A"RuneMagA"/* Indicates version A of RuneLocale */
130
131__BEGIN_DECLS
132extern _RuneLocale _DefaultRuneLocale;
133extern _RuneLocale *_CurrentRuneLocale;
134__END_DECLS
135
136#endif/* !_RUNETYPE_H_ */
137

Archive Download this file

Revision: 1808