OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [libstdc++-v3/] [config/] [os/] [mingw32/] [ctype_noninline.h] - Blame information for rev 424

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 424 jeremybenn
// Locale support -*- C++ -*-
2
 
3
// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2007, 2009
4
// Free Software Foundation, Inc.
5
//
6
// This file is part of the GNU ISO C++ Library.  This library is free
7
// software; you can redistribute it and/or modify it under the
8
// terms of the GNU General Public License as published by the
9
// Free Software Foundation; either version 3, or (at your option)
10
// any later version.
11
 
12
// This library is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
// GNU General Public License for more details.
16
 
17
// Under Section 7 of GPL version 3, you are granted additional
18
// permissions described in the GCC Runtime Library Exception, version
19
// 3.1, as published by the Free Software Foundation.
20
 
21
// You should have received a copy of the GNU General Public License and
22
// a copy of the GCC Runtime Library Exception along with this program;
23
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
24
// <http://www.gnu.org/licenses/>.
25
 
26
/** @file ctype_noninline.h
27
 *  This is an internal header file, included by other library headers.
28
 *  You should not attempt to use it directly.
29
 */
30
 
31
//
32
// ISO C++ 14882: 22.1  Locales
33
//
34
 
35
// The classic table used in libstdc++ is *not* the C _ctype table
36
// used by mscvrt, but is based on the ctype masks defined for libstdc++
37
// in ctype_base.h.
38
 
39
  const ctype_base::mask*
40
  ctype<char>::classic_table() throw()
41
  {
42
    static const ctype_base::mask _S_classic_table[256] =
43
    {
44
      cntrl /* null */,
45
      cntrl /* ^A */,
46
      cntrl /* ^B */,
47
      cntrl /* ^C */,
48
      cntrl /* ^D */,
49
      cntrl /* ^E */,
50
      cntrl /* ^F */,
51
      cntrl /* ^G */,
52
      cntrl /* ^H */,
53
      ctype_base::mask(space | cntrl) /* tab */,
54
      ctype_base::mask(space | cntrl) /* LF */,
55
      ctype_base::mask(space | cntrl) /* ^K */,
56
      ctype_base::mask(space | cntrl) /* FF */,
57
      ctype_base::mask(space | cntrl) /* ^M */,
58
      cntrl /* ^N */,
59
      cntrl /* ^O */,
60
      cntrl /* ^P */,
61
      cntrl /* ^Q */,
62
      cntrl /* ^R */,
63
      cntrl /* ^S */,
64
      cntrl /* ^T */,
65
      cntrl /* ^U */,
66
      cntrl /* ^V */,
67
      cntrl /* ^W */,
68
      cntrl /* ^X */,
69
      cntrl /* ^Y */,
70
      cntrl /* ^Z */,
71
      cntrl /* esc */,
72
      cntrl /* ^\ */,
73
      cntrl /* ^] */,
74
      cntrl /* ^^ */,
75
      cntrl /* ^_ */,
76
      ctype_base::mask(space | print) /*   */,
77
      ctype_base::mask(punct | print) /* ! */,
78
      ctype_base::mask(punct | print) /* " */,
79
      ctype_base::mask(punct | print) /* # */,
80
      ctype_base::mask(punct | print) /* $ */,
81
      ctype_base::mask(punct | print) /* % */,
82
      ctype_base::mask(punct | print) /* & */,
83
      ctype_base::mask(punct | print) /* ' */,
84
      ctype_base::mask(punct | print) /* ( */,
85
      ctype_base::mask(punct | print) /* ) */,
86
      ctype_base::mask(punct | print) /* * */,
87
      ctype_base::mask(punct | print) /* + */,
88
      ctype_base::mask(punct | print) /* , */,
89
      ctype_base::mask(punct | print) /* - */,
90
      ctype_base::mask(punct | print) /* . */,
91
      ctype_base::mask(punct | print) /* / */,
92
      ctype_base::mask(digit | xdigit | print) /* 0 */,
93
      ctype_base::mask(digit | xdigit | print) /* 1 */,
94
      ctype_base::mask(digit | xdigit | print) /* 2 */,
95
      ctype_base::mask(digit | xdigit | print) /* 3 */,
96
      ctype_base::mask(digit | xdigit | print) /* 4 */,
97
      ctype_base::mask(digit | xdigit | print) /* 5 */,
98
      ctype_base::mask(digit | xdigit | print) /* 6 */,
99
      ctype_base::mask(digit | xdigit | print) /* 7 */,
100
      ctype_base::mask(digit | xdigit | print) /* 8 */,
101
      ctype_base::mask(digit | xdigit | print) /* 9 */,
102
      ctype_base::mask(punct | print) /* : */,
103
      ctype_base::mask(punct | print) /* ; */,
104
      ctype_base::mask(punct | print) /* < */,
105
      ctype_base::mask(punct | print) /* = */,
106
      ctype_base::mask(punct | print) /* > */,
107
      ctype_base::mask(punct | print) /* ? */,
108
      ctype_base::mask(punct | print) /* ! */,
109
      ctype_base::mask(alpha | upper | xdigit | print) /* A */,
110
      ctype_base::mask(alpha | upper | xdigit | print) /* B */,
111
      ctype_base::mask(alpha | upper | xdigit | print) /* C */,
112
      ctype_base::mask(alpha | upper | xdigit | print) /* D */,
113
      ctype_base::mask(alpha | upper | xdigit | print) /* E */,
114
      ctype_base::mask(alpha | upper | xdigit | print) /* F */,
115
      ctype_base::mask(alpha | upper | print) /* G */,
116
      ctype_base::mask(alpha | upper | print) /* H */,
117
      ctype_base::mask(alpha | upper | print) /* I */,
118
      ctype_base::mask(alpha | upper | print) /* J */,
119
      ctype_base::mask(alpha | upper | print) /* K */,
120
      ctype_base::mask(alpha | upper | print) /* L */,
121
      ctype_base::mask(alpha | upper | print) /* M */,
122
      ctype_base::mask(alpha | upper | print) /* N */,
123
      ctype_base::mask(alpha | upper | print) /* O */,
124
      ctype_base::mask(alpha | upper | print) /* P */,
125
      ctype_base::mask(alpha | upper | print) /* Q */,
126
      ctype_base::mask(alpha | upper | print) /* R */,
127
      ctype_base::mask(alpha | upper | print) /* S */,
128
      ctype_base::mask(alpha | upper | print) /* T */,
129
      ctype_base::mask(alpha | upper | print) /* U */,
130
      ctype_base::mask(alpha | upper | print) /* V */,
131
      ctype_base::mask(alpha | upper | print) /* W */,
132
      ctype_base::mask(alpha | upper | print) /* X */,
133
      ctype_base::mask(alpha | upper | print) /* Y */,
134
      ctype_base::mask(alpha | upper | print) /* Z */,
135
      ctype_base::mask(punct | print) /* [ */,
136
      ctype_base::mask(punct | print) /* \ */,
137
      ctype_base::mask(punct | print) /* ] */,
138
      ctype_base::mask(punct | print) /* ^ */,
139
      ctype_base::mask(punct | print) /* _ */,
140
      ctype_base::mask(punct | print) /* ` */,
141
      ctype_base::mask(alpha | lower | xdigit | print) /* a */,
142
      ctype_base::mask(alpha | lower | xdigit | print) /* b */,
143
      ctype_base::mask(alpha | lower | xdigit | print) /* c */,
144
      ctype_base::mask(alpha | lower | xdigit | print) /* d */,
145
      ctype_base::mask(alpha | lower | xdigit | print) /* e */,
146
      ctype_base::mask(alpha | lower | xdigit | print) /* f */,
147
      ctype_base::mask(alpha | lower | print) /* g */,
148
      ctype_base::mask(alpha | lower | print) /* h */,
149
      ctype_base::mask(alpha | lower | print) /* i */,
150
      ctype_base::mask(alpha | lower | print) /* j */,
151
      ctype_base::mask(alpha | lower | print) /* k */,
152
      ctype_base::mask(alpha | lower | print) /* l */,
153
      ctype_base::mask(alpha | lower | print) /* m */,
154
      ctype_base::mask(alpha | lower | print) /* n */,
155
      ctype_base::mask(alpha | lower | print) /* o */,
156
      ctype_base::mask(alpha | lower | print) /* p */,
157
      ctype_base::mask(alpha | lower | print) /* q */,
158
      ctype_base::mask(alpha | lower | print) /* r */,
159
      ctype_base::mask(alpha | lower | print) /* s */,
160
      ctype_base::mask(alpha | lower | print) /* t */,
161
      ctype_base::mask(alpha | lower | print) /* u */,
162
      ctype_base::mask(alpha | lower | print) /* v */,
163
      ctype_base::mask(alpha | lower | print) /* w */,
164
      ctype_base::mask(alpha | lower | print) /* x */,
165
      ctype_base::mask(alpha | lower | print) /* y */,
166
      ctype_base::mask(alpha | lower | print) /* x */,
167
      ctype_base::mask(punct | print) /* { */,
168
      ctype_base::mask(punct | print) /* | */,
169
      ctype_base::mask(punct | print) /* } */,
170
      ctype_base::mask(punct | print) /* ~ */,
171
      cntrl /* del (0x7f)*/,
172
      /* The next 128 entries are all 0.   */
173
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
174
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
175
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
176
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
177
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
178
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
179
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
180
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
181
    };
182
    return _S_classic_table;
183
  }
184
 
185
  ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
186
                     size_t __refs)
187
  : facet(__refs), _M_del(__table != 0 && __del),
188
  _M_toupper(NULL), _M_tolower(NULL),
189
  _M_table(__table ? __table : classic_table())
190
  {
191
    memset(_M_widen, 0, sizeof(_M_widen));
192
    _M_widen_ok = 0;
193
    memset(_M_narrow, 0, sizeof(_M_narrow));
194
    _M_narrow_ok = 0;
195
  }
196
 
197
  ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
198
  : facet(__refs), _M_del(__table != 0 && __del),
199
  _M_toupper(NULL), _M_tolower(NULL),
200
  _M_table(__table ? __table : classic_table())
201
  {
202
    memset(_M_widen, 0, sizeof(_M_widen));
203
    _M_widen_ok = 0;
204
    memset(_M_narrow, 0, sizeof(_M_narrow));
205
    _M_narrow_ok = 0;
206
  }
207
 
208
  char
209
  ctype<char>::do_toupper(char __c) const
210
  { return (this->is(ctype_base::lower, __c) ? (__c - 'a' + 'A') : __c); }
211
 
212
  const char*
213
  ctype<char>::do_toupper(char* __low, const char* __high) const
214
  {
215
    while (__low < __high)
216
      {
217
        *__low = this->do_toupper(*__low);
218
        ++__low;
219
      }
220
    return __high;
221
  }
222
 
223
  char
224
  ctype<char>::do_tolower(char __c) const
225
  { return (this->is(ctype_base::upper, __c) ? (__c - 'A' + 'a') : __c); }
226
 
227
  const char*
228
  ctype<char>::do_tolower(char* __low, const char* __high) const
229
  {
230
    while (__low < __high)
231
      {
232
        *__low = this->do_tolower(*__low);
233
        ++__low;
234
      }
235
    return __high;
236
  }
237
 
238
 
239
 
240
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.