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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [gdb/] [gnulib/] [wchar.in.h] - Blame information for rev 853

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 330 jeremybenn
/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
2
 
3
   Copyright (C) 2007-2010 Free Software Foundation, Inc.
4
 
5
   This program is free software; you can redistribute it and/or modify
6
   it under the terms of the GNU General Public License as published by
7
   the Free Software Foundation; either version 3, or (at your option)
8
   any later version.
9
 
10
   This program 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
13
   GNU General Public License for more details.
14
 
15
   You should have received a copy of the GNU General Public License
16
   along with this program; if not, write to the Free Software Foundation,
17
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
18
 
19
/* Written by Eric Blake.  */
20
 
21
/*
22
 * ISO C 99 <wchar.h> for platforms that have issues.
23
 * <http://www.opengroup.org/susv3xbd/wchar.h.html>
24
 *
25
 * For now, this just ensures proper prerequisite inclusion order and
26
 * the declaration of wcwidth().
27
 */
28
 
29
#if __GNUC__ >= 3
30
@PRAGMA_SYSTEM_HEADER@
31
#endif
32
 
33
#if defined __need_mbstate_t || defined __need_wint_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H
34
/* Special invocation convention:
35
   - Inside glibc and uClibc header files.
36
   - On HP-UX 11.00 we have a sequence of nested includes
37
     <wchar.h> -> <stdlib.h> -> <stdint.h>, and the latter includes <wchar.h>,
38
     once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h>
39
     and once directly.  In both situations 'wint_t' is not yet defined,
40
     therefore we cannot provide the function overrides; instead include only
41
     the system's <wchar.h>.
42
   - On IRIX 6.5, similarly, we have an include <wchar.h> -> <wctype.h>, and
43
     the latter includes <wchar.h>.  But here, we have no way to detect whether
44
     <wctype.h> is completely included or is still being included.  */
45
 
46
#@INCLUDE_NEXT@ @NEXT_WCHAR_H@
47
 
48
#else
49
/* Normal invocation convention.  */
50
 
51
#ifndef _GL_WCHAR_H
52
 
53
#define _GL_ALREADY_INCLUDING_WCHAR_H
54
 
55
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
56
   <wchar.h>.
57
   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
58
   included before <wchar.h>.
59
   But avoid namespace pollution on glibc systems.  */
60
#ifndef __GLIBC__
61
# include <stddef.h>
62
# include <stdio.h>
63
# include <time.h>
64
#endif
65
 
66
/* Include the original <wchar.h> if it exists.
67
   Some builds of uClibc lack it.  */
68
/* The include_next requires a split double-inclusion guard.  */
69
#if @HAVE_WCHAR_H@
70
# @INCLUDE_NEXT@ @NEXT_WCHAR_H@
71
#endif
72
 
73
#undef _GL_ALREADY_INCLUDING_WCHAR_H
74
 
75
#ifndef _GL_WCHAR_H
76
#define _GL_WCHAR_H
77
 
78
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
79
 
80
/* The definition of _GL_ARG_NONNULL is copied here.  */
81
 
82
/* The definition of _GL_WARN_ON_USE is copied here.  */
83
 
84
 
85
/* Define wint_t and WEOF.  (Also done in wctype.in.h.)  */
86
#if !@HAVE_WINT_T@ && !defined wint_t
87
# define wint_t int
88
# ifndef WEOF
89
#  define WEOF -1
90
# endif
91
#else
92
# ifndef WEOF
93
#  define WEOF ((wint_t) -1)
94
# endif
95
#endif
96
 
97
 
98
/* Override mbstate_t if it is too small.
99
   On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for
100
   implementing mbrtowc for encodings like UTF-8.  */
101
#if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@
102
typedef int rpl_mbstate_t;
103
# undef mbstate_t
104
# define mbstate_t rpl_mbstate_t
105
# define GNULIB_defined_mbstate_t 1
106
#endif
107
 
108
 
109
/* Convert a single-byte character to a wide character.  */
110
#if @GNULIB_BTOWC@
111
# if @REPLACE_BTOWC@
112
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
113
#   undef btowc
114
#   define btowc rpl_btowc
115
#  endif
116
_GL_FUNCDECL_RPL (btowc, wint_t, (int c));
117
_GL_CXXALIAS_RPL (btowc, wint_t, (int c));
118
# else
119
#  if !@HAVE_BTOWC@
120
_GL_FUNCDECL_SYS (btowc, wint_t, (int c));
121
#  endif
122
_GL_CXXALIAS_SYS (btowc, wint_t, (int c));
123
# endif
124
_GL_CXXALIASWARN (btowc);
125
#elif defined GNULIB_POSIXCHECK
126
# undef btowc
127
# if HAVE_RAW_DECL_BTOWC
128
_GL_WARN_ON_USE (btowc, "btowc is unportable - "
129
                 "use gnulib module btowc for portability");
130
# endif
131
#endif
132
 
133
 
134
/* Convert a wide character to a single-byte character.  */
135
#if @GNULIB_WCTOB@
136
# if @REPLACE_WCTOB@
137
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
138
#   undef wctob
139
#   define wctob rpl_wctob
140
#  endif
141
_GL_FUNCDECL_RPL (wctob, int, (wint_t wc));
142
_GL_CXXALIAS_RPL (wctob, int, (wint_t wc));
143
# else
144
#  if !defined wctob && !@HAVE_DECL_WCTOB@
145
/* wctob is provided by gnulib, or wctob exists but is not declared.  */
146
_GL_FUNCDECL_SYS (wctob, int, (wint_t wc));
147
#  endif
148
_GL_CXXALIAS_SYS (wctob, int, (wint_t wc));
149
# endif
150
_GL_CXXALIASWARN (wctob);
151
#elif defined GNULIB_POSIXCHECK
152
# undef wctob
153
# if HAVE_RAW_DECL_WCTOB
154
_GL_WARN_ON_USE (wctob, "wctob is unportable - "
155
                 "use gnulib module wctob for portability");
156
# endif
157
#endif
158
 
159
 
160
/* Test whether *PS is in the initial state.  */
161
#if @GNULIB_MBSINIT@
162
# if @REPLACE_MBSINIT@
163
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
164
#   undef mbsinit
165
#   define mbsinit rpl_mbsinit
166
#  endif
167
_GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps));
168
_GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps));
169
# else
170
#  if !@HAVE_MBSINIT@
171
_GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps));
172
#  endif
173
_GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps));
174
# endif
175
_GL_CXXALIASWARN (mbsinit);
176
#elif defined GNULIB_POSIXCHECK
177
# undef mbsinit
178
# if HAVE_RAW_DECL_MBSINIT
179
_GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - "
180
                 "use gnulib module mbsinit for portability");
181
# endif
182
#endif
183
 
184
 
185
/* Convert a multibyte character to a wide character.  */
186
#if @GNULIB_MBRTOWC@
187
# if @REPLACE_MBRTOWC@
188
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
189
#   undef mbrtowc
190
#   define mbrtowc rpl_mbrtowc
191
#  endif
192
_GL_FUNCDECL_RPL (mbrtowc, size_t,
193
                  (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps));
194
_GL_CXXALIAS_RPL (mbrtowc, size_t,
195
                  (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps));
196
# else
197
#  if !@HAVE_MBRTOWC@
198
_GL_FUNCDECL_SYS (mbrtowc, size_t,
199
                  (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps));
200
#  endif
201
_GL_CXXALIAS_SYS (mbrtowc, size_t,
202
                  (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps));
203
# endif
204
_GL_CXXALIASWARN (mbrtowc);
205
#elif defined GNULIB_POSIXCHECK
206
# undef mbrtowc
207
# if HAVE_RAW_DECL_MBRTOWC
208
_GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - "
209
                 "use gnulib module mbrtowc for portability");
210
# endif
211
#endif
212
 
213
 
214
/* Recognize a multibyte character.  */
215
#if @GNULIB_MBRLEN@
216
# if @REPLACE_MBRLEN@
217
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
218
#   undef mbrlen
219
#   define mbrlen rpl_mbrlen
220
#  endif
221
_GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps));
222
_GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps));
223
# else
224
#  if !@HAVE_MBRLEN@
225
_GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps));
226
#  endif
227
_GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps));
228
# endif
229
_GL_CXXALIASWARN (mbrlen);
230
#elif defined GNULIB_POSIXCHECK
231
# undef mbrlen
232
# if HAVE_RAW_DECL_MBRLEN
233
_GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - "
234
                 "use gnulib module mbrlen for portability");
235
# endif
236
#endif
237
 
238
 
239
/* Convert a string to a wide string.  */
240
#if @GNULIB_MBSRTOWCS@
241
# if @REPLACE_MBSRTOWCS@
242
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
243
#   undef mbsrtowcs
244
#   define mbsrtowcs rpl_mbsrtowcs
245
#  endif
246
_GL_FUNCDECL_RPL (mbsrtowcs, size_t,
247
                  (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)
248
                  _GL_ARG_NONNULL ((2)));
249
_GL_CXXALIAS_RPL (mbsrtowcs, size_t,
250
                  (wchar_t *dest, const char **srcp, size_t len,
251
                   mbstate_t *ps));
252
# else
253
#  if !@HAVE_MBSRTOWCS@
254
_GL_FUNCDECL_SYS (mbsrtowcs, size_t,
255
                  (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)
256
                  _GL_ARG_NONNULL ((2)));
257
#  endif
258
_GL_CXXALIAS_SYS (mbsrtowcs, size_t,
259
                  (wchar_t *dest, const char **srcp, size_t len,
260
                   mbstate_t *ps));
261
# endif
262
_GL_CXXALIASWARN (mbsrtowcs);
263
#elif defined GNULIB_POSIXCHECK
264
# undef mbsrtowcs
265
# if HAVE_RAW_DECL_MBSRTOWCS
266
_GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - "
267
                 "use gnulib module mbsrtowcs for portability");
268
# endif
269
#endif
270
 
271
 
272
/* Convert a string to a wide string.  */
273
#if @GNULIB_MBSNRTOWCS@
274
# if @REPLACE_MBSNRTOWCS@
275
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
276
#   undef mbsnrtowcs
277
#   define mbsnrtowcs rpl_mbsnrtowcs
278
#  endif
279
_GL_FUNCDECL_RPL (mbsnrtowcs, size_t,
280
                  (wchar_t *dest, const char **srcp, size_t srclen, size_t len,
281
                   mbstate_t *ps)
282
                  _GL_ARG_NONNULL ((2)));
283
_GL_CXXALIAS_RPL (mbsnrtowcs, size_t,
284
                  (wchar_t *dest, const char **srcp, size_t srclen, size_t len,
285
                   mbstate_t *ps));
286
# else
287
#  if !@HAVE_MBSNRTOWCS@
288
_GL_FUNCDECL_SYS (mbsnrtowcs, size_t,
289
                  (wchar_t *dest, const char **srcp, size_t srclen, size_t len,
290
                   mbstate_t *ps)
291
                  _GL_ARG_NONNULL ((2)));
292
#  endif
293
_GL_CXXALIAS_SYS (mbsnrtowcs, size_t,
294
                  (wchar_t *dest, const char **srcp, size_t srclen, size_t len,
295
                   mbstate_t *ps));
296
# endif
297
_GL_CXXALIASWARN (mbsnrtowcs);
298
#elif defined GNULIB_POSIXCHECK
299
# undef mbsnrtowcs
300
# if HAVE_RAW_DECL_MBSNRTOWCS
301
_GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - "
302
                 "use gnulib module mbsnrtowcs for portability");
303
# endif
304
#endif
305
 
306
 
307
/* Convert a wide character to a multibyte character.  */
308
#if @GNULIB_WCRTOMB@
309
# if @REPLACE_WCRTOMB@
310
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
311
#   undef wcrtomb
312
#   define wcrtomb rpl_wcrtomb
313
#  endif
314
_GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps));
315
_GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps));
316
# else
317
#  if !@HAVE_WCRTOMB@
318
_GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps));
319
#  endif
320
_GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps));
321
# endif
322
_GL_CXXALIASWARN (wcrtomb);
323
#elif defined GNULIB_POSIXCHECK
324
# undef wcrtomb
325
# if HAVE_RAW_DECL_WCRTOMB
326
_GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - "
327
                 "use gnulib module wcrtomb for portability");
328
# endif
329
#endif
330
 
331
 
332
/* Convert a wide string to a string.  */
333
#if @GNULIB_WCSRTOMBS@
334
# if @REPLACE_WCSRTOMBS@
335
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
336
#   undef wcsrtombs
337
#   define wcsrtombs rpl_wcsrtombs
338
#  endif
339
_GL_FUNCDECL_RPL (wcsrtombs, size_t,
340
                  (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)
341
                  _GL_ARG_NONNULL ((2)));
342
_GL_CXXALIAS_RPL (wcsrtombs, size_t,
343
                  (char *dest, const wchar_t **srcp, size_t len,
344
                   mbstate_t *ps));
345
# else
346
#  if !@HAVE_WCSRTOMBS@
347
_GL_FUNCDECL_SYS (wcsrtombs, size_t,
348
                  (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)
349
                  _GL_ARG_NONNULL ((2)));
350
#  endif
351
_GL_CXXALIAS_SYS (wcsrtombs, size_t,
352
                  (char *dest, const wchar_t **srcp, size_t len,
353
                   mbstate_t *ps));
354
# endif
355
_GL_CXXALIASWARN (wcsrtombs);
356
#elif defined GNULIB_POSIXCHECK
357
# undef wcsrtombs
358
# if HAVE_RAW_DECL_WCSRTOMBS
359
_GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - "
360
                 "use gnulib module wcsrtombs for portability");
361
# endif
362
#endif
363
 
364
 
365
/* Convert a wide string to a string.  */
366
#if @GNULIB_WCSNRTOMBS@
367
# if @REPLACE_WCSNRTOMBS@
368
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
369
#   undef wcsnrtombs
370
#   define wcsnrtombs rpl_wcsnrtombs
371
#  endif
372
_GL_FUNCDECL_RPL (wcsnrtombs, size_t,
373
                  (char *dest, const wchar_t **srcp, size_t srclen, size_t len,
374
                   mbstate_t *ps)
375
                  _GL_ARG_NONNULL ((2)));
376
_GL_CXXALIAS_RPL (wcsnrtombs, size_t,
377
                  (char *dest, const wchar_t **srcp, size_t srclen, size_t len,
378
                   mbstate_t *ps));
379
# else
380
#  if !@HAVE_WCSNRTOMBS@
381
_GL_FUNCDECL_SYS (wcsnrtombs, size_t,
382
                  (char *dest, const wchar_t **srcp, size_t srclen, size_t len,
383
                   mbstate_t *ps)
384
                  _GL_ARG_NONNULL ((2)));
385
#  endif
386
_GL_CXXALIAS_SYS (wcsnrtombs, size_t,
387
                  (char *dest, const wchar_t **srcp, size_t srclen, size_t len,
388
                   mbstate_t *ps));
389
# endif
390
_GL_CXXALIASWARN (wcsnrtombs);
391
#elif defined GNULIB_POSIXCHECK
392
# undef wcsnrtombs
393
# if HAVE_RAW_DECL_WCSNRTOMBS
394
_GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - "
395
                 "use gnulib module wcsnrtombs for portability");
396
# endif
397
#endif
398
 
399
 
400
/* Return the number of screen columns needed for WC.  */
401
#if @GNULIB_WCWIDTH@
402
# if @REPLACE_WCWIDTH@
403
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
404
#   undef wcwidth
405
#   define wcwidth rpl_wcwidth
406
#  endif
407
_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t));
408
_GL_CXXALIAS_RPL (wcwidth, int, (wchar_t));
409
# else
410
#  if !@HAVE_DECL_WCWIDTH@
411
/* wcwidth exists but is not declared.  */
412
_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t));
413
#  endif
414
_GL_CXXALIAS_SYS (wcwidth, int, (wchar_t));
415
# endif
416
_GL_CXXALIASWARN (wcwidth);
417
#elif defined GNULIB_POSIXCHECK
418
# undef wcwidth
419
# if HAVE_RAW_DECL_WCWIDTH
420
_GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - "
421
                 "use gnulib module wcwidth for portability");
422
# endif
423
#endif
424
 
425
 
426
#endif /* _GL_WCHAR_H */
427
#endif /* _GL_WCHAR_H */
428
#endif

powered by: WebSVN 2.1.0

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