99
127
On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for
100
128
implementing mbrtowc for encodings like UTF-8. */
101
129
#if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@
130
# if !GNULIB_defined_mbstate_t
102
131
typedef int rpl_mbstate_t;
104
# define mbstate_t rpl_mbstate_t
105
# define GNULIB_defined_mbstate_t 1
133
# define mbstate_t rpl_mbstate_t
134
# define GNULIB_defined_mbstate_t 1
109
139
/* Convert a single-byte character to a wide character. */
110
140
#if @GNULIB_BTOWC@
111
141
# if @REPLACE_BTOWC@
113
# define btowc rpl_btowc
115
# if !@HAVE_BTOWC@ || @REPLACE_BTOWC@
116
extern wint_t btowc (int c);
142
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
144
# define btowc rpl_btowc
146
_GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE);
147
_GL_CXXALIAS_RPL (btowc, wint_t, (int c));
150
_GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE);
152
_GL_CXXALIAS_SYS (btowc, wint_t, (int c));
154
_GL_CXXALIASWARN (btowc);
118
155
#elif defined GNULIB_POSIXCHECK
121
(GL_LINK_WARNING ("btowc is unportable - " \
122
"use gnulib module btowc for portability"), \
157
# if HAVE_RAW_DECL_BTOWC
158
_GL_WARN_ON_USE (btowc, "btowc is unportable - "
159
"use gnulib module btowc for portability");
127
164
/* Convert a wide character to a single-byte character. */
128
165
#if @GNULIB_WCTOB@
129
166
# if @REPLACE_WCTOB@
131
# define wctob rpl_wctob
133
# if (!defined wctob && !@HAVE_DECL_WCTOB@) || @REPLACE_WCTOB@
167
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
169
# define wctob rpl_wctob
171
_GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE);
172
_GL_CXXALIAS_RPL (wctob, int, (wint_t wc));
174
# if !defined wctob && !@HAVE_DECL_WCTOB@
134
175
/* wctob is provided by gnulib, or wctob exists but is not declared. */
135
extern int wctob (wint_t wc);
176
_GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE);
178
_GL_CXXALIAS_SYS (wctob, int, (wint_t wc));
180
_GL_CXXALIASWARN (wctob);
137
181
#elif defined GNULIB_POSIXCHECK
140
(GL_LINK_WARNING ("wctob is unportable - " \
141
"use gnulib module wctob for portability"), \
183
# if HAVE_RAW_DECL_WCTOB
184
_GL_WARN_ON_USE (wctob, "wctob is unportable - "
185
"use gnulib module wctob for portability");
146
190
/* Test whether *PS is in the initial state. */
147
191
#if @GNULIB_MBSINIT@
148
192
# if @REPLACE_MBSINIT@
150
# define mbsinit rpl_mbsinit
152
# if !@HAVE_MBSINIT@ || @REPLACE_MBSINIT@
153
extern int mbsinit (const mbstate_t *ps);
193
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
195
# define mbsinit rpl_mbsinit
197
_GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps));
198
_GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps));
201
_GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps));
203
_GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps));
205
_GL_CXXALIASWARN (mbsinit);
155
206
#elif defined GNULIB_POSIXCHECK
157
# define mbsinit(p) \
158
(GL_LINK_WARNING ("mbsinit is unportable - " \
159
"use gnulib module mbsinit for portability"), \
208
# if HAVE_RAW_DECL_MBSINIT
209
_GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - "
210
"use gnulib module mbsinit for portability");
164
215
/* Convert a multibyte character to a wide character. */
165
216
#if @GNULIB_MBRTOWC@
166
217
# if @REPLACE_MBRTOWC@
168
# define mbrtowc rpl_mbrtowc
170
# if !@HAVE_MBRTOWC@ || @REPLACE_MBRTOWC@
171
extern size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);
218
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
220
# define mbrtowc rpl_mbrtowc
222
_GL_FUNCDECL_RPL (mbrtowc, size_t,
223
(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps));
224
_GL_CXXALIAS_RPL (mbrtowc, size_t,
225
(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps));
228
_GL_FUNCDECL_SYS (mbrtowc, size_t,
229
(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps));
231
_GL_CXXALIAS_SYS (mbrtowc, size_t,
232
(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps));
234
_GL_CXXALIASWARN (mbrtowc);
173
235
#elif defined GNULIB_POSIXCHECK
175
# define mbrtowc(w,s,n,p) \
176
(GL_LINK_WARNING ("mbrtowc is unportable - " \
177
"use gnulib module mbrtowc for portability"), \
178
mbrtowc (w, s, n, p))
237
# if HAVE_RAW_DECL_MBRTOWC
238
_GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - "
239
"use gnulib module mbrtowc for portability");
182
244
/* Recognize a multibyte character. */
183
245
#if @GNULIB_MBRLEN@
184
246
# if @REPLACE_MBRLEN@
186
# define mbrlen rpl_mbrlen
188
# if !@HAVE_MBRLEN@ || @REPLACE_MBRLEN@
189
extern size_t mbrlen (const char *s, size_t n, mbstate_t *ps);
247
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
249
# define mbrlen rpl_mbrlen
251
_GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps));
252
_GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps));
255
_GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps));
257
_GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps));
259
_GL_CXXALIASWARN (mbrlen);
191
260
#elif defined GNULIB_POSIXCHECK
193
# define mbrlen(s,n,p) \
194
(GL_LINK_WARNING ("mbrlen is unportable - " \
195
"use gnulib module mbrlen for portability"), \
262
# if HAVE_RAW_DECL_MBRLEN
263
_GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - "
264
"use gnulib module mbrlen for portability");
200
269
/* Convert a string to a wide string. */
201
270
#if @GNULIB_MBSRTOWCS@
202
271
# if @REPLACE_MBSRTOWCS@
204
# define mbsrtowcs rpl_mbsrtowcs
206
# if !@HAVE_MBSRTOWCS@ || @REPLACE_MBSRTOWCS@
207
extern size_t mbsrtowcs (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)
208
_GL_ARG_NONNULL ((2));
272
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
274
# define mbsrtowcs rpl_mbsrtowcs
276
_GL_FUNCDECL_RPL (mbsrtowcs, size_t,
277
(wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)
278
_GL_ARG_NONNULL ((2)));
279
_GL_CXXALIAS_RPL (mbsrtowcs, size_t,
280
(wchar_t *dest, const char **srcp, size_t len,
283
# if !@HAVE_MBSRTOWCS@
284
_GL_FUNCDECL_SYS (mbsrtowcs, size_t,
285
(wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)
286
_GL_ARG_NONNULL ((2)));
288
_GL_CXXALIAS_SYS (mbsrtowcs, size_t,
289
(wchar_t *dest, const char **srcp, size_t len,
292
_GL_CXXALIASWARN (mbsrtowcs);
210
293
#elif defined GNULIB_POSIXCHECK
211
294
# undef mbsrtowcs
212
# define mbsrtowcs(d,s,l,p) \
213
(GL_LINK_WARNING ("mbsrtowcs is unportable - " \
214
"use gnulib module mbsrtowcs for portability"), \
215
mbsrtowcs (d, s, l, p))
295
# if HAVE_RAW_DECL_MBSRTOWCS
296
_GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - "
297
"use gnulib module mbsrtowcs for portability");
219
302
/* Convert a string to a wide string. */
220
303
#if @GNULIB_MBSNRTOWCS@
221
304
# if @REPLACE_MBSNRTOWCS@
223
# define mbsnrtowcs rpl_mbsnrtowcs
225
# if !@HAVE_MBSNRTOWCS@ || @REPLACE_MBSNRTOWCS@
226
extern size_t mbsnrtowcs (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)
227
_GL_ARG_NONNULL ((2));
305
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
307
# define mbsnrtowcs rpl_mbsnrtowcs
309
_GL_FUNCDECL_RPL (mbsnrtowcs, size_t,
310
(wchar_t *dest, const char **srcp, size_t srclen, size_t len,
312
_GL_ARG_NONNULL ((2)));
313
_GL_CXXALIAS_RPL (mbsnrtowcs, size_t,
314
(wchar_t *dest, const char **srcp, size_t srclen, size_t len,
317
# if !@HAVE_MBSNRTOWCS@
318
_GL_FUNCDECL_SYS (mbsnrtowcs, size_t,
319
(wchar_t *dest, const char **srcp, size_t srclen, size_t len,
321
_GL_ARG_NONNULL ((2)));
323
_GL_CXXALIAS_SYS (mbsnrtowcs, size_t,
324
(wchar_t *dest, const char **srcp, size_t srclen, size_t len,
327
_GL_CXXALIASWARN (mbsnrtowcs);
229
328
#elif defined GNULIB_POSIXCHECK
230
329
# undef mbsnrtowcs
231
# define mbsnrtowcs(d,s,n,l,p) \
232
(GL_LINK_WARNING ("mbsnrtowcs is unportable - " \
233
"use gnulib module mbsnrtowcs for portability"), \
234
mbsnrtowcs (d, s, n, l, p))
330
# if HAVE_RAW_DECL_MBSNRTOWCS
331
_GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - "
332
"use gnulib module mbsnrtowcs for portability");
238
337
/* Convert a wide character to a multibyte character. */
239
338
#if @GNULIB_WCRTOMB@
240
339
# if @REPLACE_WCRTOMB@
242
# define wcrtomb rpl_wcrtomb
244
# if !@HAVE_WCRTOMB@ || @REPLACE_WCRTOMB@
245
extern size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps);
340
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
342
# define wcrtomb rpl_wcrtomb
344
_GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps));
345
_GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps));
348
_GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps));
350
_GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps));
352
_GL_CXXALIASWARN (wcrtomb);
247
353
#elif defined GNULIB_POSIXCHECK
249
# define wcrtomb(s,w,p) \
250
(GL_LINK_WARNING ("wcrtomb is unportable - " \
251
"use gnulib module wcrtomb for portability"), \
355
# if HAVE_RAW_DECL_WCRTOMB
356
_GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - "
357
"use gnulib module wcrtomb for portability");
256
362
/* Convert a wide string to a string. */
257
363
#if @GNULIB_WCSRTOMBS@
258
364
# if @REPLACE_WCSRTOMBS@
260
# define wcsrtombs rpl_wcsrtombs
262
# if !@HAVE_WCSRTOMBS@ || @REPLACE_WCSRTOMBS@
263
extern size_t wcsrtombs (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)
264
_GL_ARG_NONNULL ((2));
365
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
367
# define wcsrtombs rpl_wcsrtombs
369
_GL_FUNCDECL_RPL (wcsrtombs, size_t,
370
(char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)
371
_GL_ARG_NONNULL ((2)));
372
_GL_CXXALIAS_RPL (wcsrtombs, size_t,
373
(char *dest, const wchar_t **srcp, size_t len,
376
# if !@HAVE_WCSRTOMBS@
377
_GL_FUNCDECL_SYS (wcsrtombs, size_t,
378
(char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)
379
_GL_ARG_NONNULL ((2)));
381
_GL_CXXALIAS_SYS (wcsrtombs, size_t,
382
(char *dest, const wchar_t **srcp, size_t len,
385
_GL_CXXALIASWARN (wcsrtombs);
266
386
#elif defined GNULIB_POSIXCHECK
267
387
# undef wcsrtombs
268
# define wcsrtombs(d,s,l,p) \
269
(GL_LINK_WARNING ("wcsrtombs is unportable - " \
270
"use gnulib module wcsrtombs for portability"), \
271
wcsrtombs (d, s, l, p))
388
# if HAVE_RAW_DECL_WCSRTOMBS
389
_GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - "
390
"use gnulib module wcsrtombs for portability");
275
395
/* Convert a wide string to a string. */
276
396
#if @GNULIB_WCSNRTOMBS@
277
397
# if @REPLACE_WCSNRTOMBS@
279
# define wcsnrtombs rpl_wcsnrtombs
281
# if !@HAVE_WCSNRTOMBS@ || @REPLACE_WCSNRTOMBS@
282
extern size_t wcsnrtombs (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)
283
_GL_ARG_NONNULL ((2));
398
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
400
# define wcsnrtombs rpl_wcsnrtombs
402
_GL_FUNCDECL_RPL (wcsnrtombs, size_t,
403
(char *dest, const wchar_t **srcp, size_t srclen, size_t len,
405
_GL_ARG_NONNULL ((2)));
406
_GL_CXXALIAS_RPL (wcsnrtombs, size_t,
407
(char *dest, const wchar_t **srcp, size_t srclen, size_t len,
410
# if !@HAVE_WCSNRTOMBS@
411
_GL_FUNCDECL_SYS (wcsnrtombs, size_t,
412
(char *dest, const wchar_t **srcp, size_t srclen, size_t len,
414
_GL_ARG_NONNULL ((2)));
416
_GL_CXXALIAS_SYS (wcsnrtombs, size_t,
417
(char *dest, const wchar_t **srcp, size_t srclen, size_t len,
420
_GL_CXXALIASWARN (wcsnrtombs);
285
421
#elif defined GNULIB_POSIXCHECK
286
422
# undef wcsnrtombs
287
# define wcsnrtombs(d,s,n,l,p) \
288
(GL_LINK_WARNING ("wcsnrtombs is unportable - " \
289
"use gnulib module wcsnrtombs for portability"), \
290
wcsnrtombs (d, s, n, l, p))
423
# if HAVE_RAW_DECL_WCSNRTOMBS
424
_GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - "
425
"use gnulib module wcsnrtombs for portability");
294
430
/* Return the number of screen columns needed for WC. */
295
431
#if @GNULIB_WCWIDTH@
296
432
# if @REPLACE_WCWIDTH@
298
# define wcwidth rpl_wcwidth
299
extern int wcwidth (wchar_t);
433
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
435
# define wcwidth rpl_wcwidth
437
_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
438
_GL_CXXALIAS_RPL (wcwidth, int, (wchar_t));
301
# if !defined wcwidth && !@HAVE_DECL_WCWIDTH@
440
# if !@HAVE_DECL_WCWIDTH@
302
441
/* wcwidth exists but is not declared. */
303
extern int wcwidth (int /* actually wchar_t */);
442
_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
444
_GL_CXXALIAS_SYS (wcwidth, int, (wchar_t));
446
_GL_CXXALIASWARN (wcwidth);
306
447
#elif defined GNULIB_POSIXCHECK
308
# define wcwidth(w) \
309
(GL_LINK_WARNING ("wcwidth is unportable - " \
310
"use gnulib module wcwidth for portability"), \
319
#endif /* _GL_WCHAR_H */
320
#endif /* _GL_WCHAR_H */
449
# if HAVE_RAW_DECL_WCWIDTH
450
_GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - "
451
"use gnulib module wcwidth for portability");
456
/* Search N wide characters of S for C. */
459
_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n)
462
/* On some systems, this function is defined as an overloaded function:
464
const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t);
465
wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t);
467
_GL_CXXALIAS_SYS_CAST2 (wmemchr,
468
wchar_t *, (const wchar_t *, wchar_t, size_t),
469
const wchar_t *, (const wchar_t *, wchar_t, size_t));
470
# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
471
&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
472
_GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
473
_GL_CXXALIASWARN1 (wmemchr, const wchar_t *,
474
(const wchar_t *s, wchar_t c, size_t n));
476
_GL_CXXALIASWARN (wmemchr);
478
#elif defined GNULIB_POSIXCHECK
480
# if HAVE_RAW_DECL_WMEMCHR
481
_GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - "
482
"use gnulib module wmemchr for portability");
487
/* Compare N wide characters of S1 and S2. */
490
_GL_FUNCDECL_SYS (wmemcmp, int,
491
(const wchar_t *s1, const wchar_t *s2, size_t n)
494
_GL_CXXALIAS_SYS (wmemcmp, int,
495
(const wchar_t *s1, const wchar_t *s2, size_t n));
496
_GL_CXXALIASWARN (wmemcmp);
497
#elif defined GNULIB_POSIXCHECK
499
# if HAVE_RAW_DECL_WMEMCMP
500
_GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - "
501
"use gnulib module wmemcmp for portability");
506
/* Copy N wide characters of SRC to DEST. */
509
_GL_FUNCDECL_SYS (wmemcpy, wchar_t *,
510
(wchar_t *dest, const wchar_t *src, size_t n));
512
_GL_CXXALIAS_SYS (wmemcpy, wchar_t *,
513
(wchar_t *dest, const wchar_t *src, size_t n));
514
_GL_CXXALIASWARN (wmemcpy);
515
#elif defined GNULIB_POSIXCHECK
517
# if HAVE_RAW_DECL_WMEMCPY
518
_GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - "
519
"use gnulib module wmemcpy for portability");
524
/* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for
525
overlapping memory areas. */
526
#if @GNULIB_WMEMMOVE@
527
# if !@HAVE_WMEMMOVE@
528
_GL_FUNCDECL_SYS (wmemmove, wchar_t *,
529
(wchar_t *dest, const wchar_t *src, size_t n));
531
_GL_CXXALIAS_SYS (wmemmove, wchar_t *,
532
(wchar_t *dest, const wchar_t *src, size_t n));
533
_GL_CXXALIASWARN (wmemmove);
534
#elif defined GNULIB_POSIXCHECK
536
# if HAVE_RAW_DECL_WMEMMOVE
537
_GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - "
538
"use gnulib module wmemmove for portability");
543
/* Set N wide characters of S to C. */
546
_GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
548
_GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
549
_GL_CXXALIASWARN (wmemset);
550
#elif defined GNULIB_POSIXCHECK
552
# if HAVE_RAW_DECL_WMEMSET
553
_GL_WARN_ON_USE (wmemset, "wmemset is unportable - "
554
"use gnulib module wmemset for portability");
559
/* Return the number of wide characters in S. */
562
_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE);
564
_GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s));
565
_GL_CXXALIASWARN (wcslen);
566
#elif defined GNULIB_POSIXCHECK
568
# if HAVE_RAW_DECL_WCSLEN
569
_GL_WARN_ON_USE (wcslen, "wcslen is unportable - "
570
"use gnulib module wcslen for portability");
575
/* Return the number of wide characters in S, but at most MAXLEN. */
578
_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)
581
_GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen));
582
_GL_CXXALIASWARN (wcsnlen);
583
#elif defined GNULIB_POSIXCHECK
585
# if HAVE_RAW_DECL_WCSNLEN
586
_GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - "
587
"use gnulib module wcsnlen for portability");
592
/* Copy SRC to DEST. */
595
_GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
597
_GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
598
_GL_CXXALIASWARN (wcscpy);
599
#elif defined GNULIB_POSIXCHECK
601
# if HAVE_RAW_DECL_WCSCPY
602
_GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - "
603
"use gnulib module wcscpy for portability");
608
/* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */
611
_GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
613
_GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
614
_GL_CXXALIASWARN (wcpcpy);
615
#elif defined GNULIB_POSIXCHECK
617
# if HAVE_RAW_DECL_WCPCPY
618
_GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - "
619
"use gnulib module wcpcpy for portability");
624
/* Copy no more than N wide characters of SRC to DEST. */
627
_GL_FUNCDECL_SYS (wcsncpy, wchar_t *,
628
(wchar_t *dest, const wchar_t *src, size_t n));
630
_GL_CXXALIAS_SYS (wcsncpy, wchar_t *,
631
(wchar_t *dest, const wchar_t *src, size_t n));
632
_GL_CXXALIASWARN (wcsncpy);
633
#elif defined GNULIB_POSIXCHECK
635
# if HAVE_RAW_DECL_WCSNCPY
636
_GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - "
637
"use gnulib module wcsncpy for portability");
642
/* Copy no more than N characters of SRC to DEST, returning the address of
643
the last character written into DEST. */
646
_GL_FUNCDECL_SYS (wcpncpy, wchar_t *,
647
(wchar_t *dest, const wchar_t *src, size_t n));
649
_GL_CXXALIAS_SYS (wcpncpy, wchar_t *,
650
(wchar_t *dest, const wchar_t *src, size_t n));
651
_GL_CXXALIASWARN (wcpncpy);
652
#elif defined GNULIB_POSIXCHECK
654
# if HAVE_RAW_DECL_WCPNCPY
655
_GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - "
656
"use gnulib module wcpncpy for portability");
661
/* Append SRC onto DEST. */
664
_GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src));
666
_GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src));
667
_GL_CXXALIASWARN (wcscat);
668
#elif defined GNULIB_POSIXCHECK
670
# if HAVE_RAW_DECL_WCSCAT
671
_GL_WARN_ON_USE (wcscat, "wcscat is unportable - "
672
"use gnulib module wcscat for portability");
677
/* Append no more than N wide characters of SRC onto DEST. */
680
_GL_FUNCDECL_SYS (wcsncat, wchar_t *,
681
(wchar_t *dest, const wchar_t *src, size_t n));
683
_GL_CXXALIAS_SYS (wcsncat, wchar_t *,
684
(wchar_t *dest, const wchar_t *src, size_t n));
685
_GL_CXXALIASWARN (wcsncat);
686
#elif defined GNULIB_POSIXCHECK
688
# if HAVE_RAW_DECL_WCSNCAT
689
_GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - "
690
"use gnulib module wcsncat for portability");
695
/* Compare S1 and S2. */
698
_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)
701
_GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
702
_GL_CXXALIASWARN (wcscmp);
703
#elif defined GNULIB_POSIXCHECK
705
# if HAVE_RAW_DECL_WCSCMP
706
_GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - "
707
"use gnulib module wcscmp for portability");
712
/* Compare no more than N wide characters of S1 and S2. */
715
_GL_FUNCDECL_SYS (wcsncmp, int,
716
(const wchar_t *s1, const wchar_t *s2, size_t n)
719
_GL_CXXALIAS_SYS (wcsncmp, int,
720
(const wchar_t *s1, const wchar_t *s2, size_t n));
721
_GL_CXXALIASWARN (wcsncmp);
722
#elif defined GNULIB_POSIXCHECK
724
# if HAVE_RAW_DECL_WCSNCMP
725
_GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - "
726
"use gnulib module wcsncmp for portability");
731
/* Compare S1 and S2, ignoring case. */
732
#if @GNULIB_WCSCASECMP@
733
# if !@HAVE_WCSCASECMP@
734
_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)
737
_GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2));
738
_GL_CXXALIASWARN (wcscasecmp);
739
#elif defined GNULIB_POSIXCHECK
741
# if HAVE_RAW_DECL_WCSCASECMP
742
_GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - "
743
"use gnulib module wcscasecmp for portability");
748
/* Compare no more than N chars of S1 and S2, ignoring case. */
749
#if @GNULIB_WCSNCASECMP@
750
# if !@HAVE_WCSNCASECMP@
751
_GL_FUNCDECL_SYS (wcsncasecmp, int,
752
(const wchar_t *s1, const wchar_t *s2, size_t n)
755
_GL_CXXALIAS_SYS (wcsncasecmp, int,
756
(const wchar_t *s1, const wchar_t *s2, size_t n));
757
_GL_CXXALIASWARN (wcsncasecmp);
758
#elif defined GNULIB_POSIXCHECK
760
# if HAVE_RAW_DECL_WCSNCASECMP
761
_GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - "
762
"use gnulib module wcsncasecmp for portability");
767
/* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE
768
category of the current locale. */
771
_GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2));
773
_GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2));
774
_GL_CXXALIASWARN (wcscoll);
775
#elif defined GNULIB_POSIXCHECK
777
# if HAVE_RAW_DECL_WCSCOLL
778
_GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - "
779
"use gnulib module wcscoll for portability");
784
/* Transform S2 into array pointed to by S1 such that if wcscmp is applied
785
to two transformed strings the result is the as applying 'wcscoll' to the
789
_GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n));
791
_GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n));
792
_GL_CXXALIASWARN (wcsxfrm);
793
#elif defined GNULIB_POSIXCHECK
795
# if HAVE_RAW_DECL_WCSXFRM
796
_GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - "
797
"use gnulib module wcsxfrm for portability");
802
/* Duplicate S, returning an identical malloc'd string. */
805
_GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s));
807
_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s));
808
_GL_CXXALIASWARN (wcsdup);
809
#elif defined GNULIB_POSIXCHECK
811
# if HAVE_RAW_DECL_WCSDUP
812
_GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - "
813
"use gnulib module wcsdup for portability");
818
/* Find the first occurrence of WC in WCS. */
821
_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc)
824
/* On some systems, this function is defined as an overloaded function:
826
const wchar_t * std::wcschr (const wchar_t *, wchar_t);
827
wchar_t * std::wcschr (wchar_t *, wchar_t);
829
_GL_CXXALIAS_SYS_CAST2 (wcschr,
830
wchar_t *, (const wchar_t *, wchar_t),
831
const wchar_t *, (const wchar_t *, wchar_t));
832
# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
833
&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
834
_GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc));
835
_GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
837
_GL_CXXALIASWARN (wcschr);
839
#elif defined GNULIB_POSIXCHECK
841
# if HAVE_RAW_DECL_WCSCHR
842
_GL_WARN_ON_USE (wcschr, "wcschr is unportable - "
843
"use gnulib module wcschr for portability");
848
/* Find the last occurrence of WC in WCS. */
851
_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc)
854
/* On some systems, this function is defined as an overloaded function:
856
const wchar_t * std::wcsrchr (const wchar_t *, wchar_t);
857
wchar_t * std::wcsrchr (wchar_t *, wchar_t);
859
_GL_CXXALIAS_SYS_CAST2 (wcsrchr,
860
wchar_t *, (const wchar_t *, wchar_t),
861
const wchar_t *, (const wchar_t *, wchar_t));
862
# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
863
&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
864
_GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc));
865
_GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
867
_GL_CXXALIASWARN (wcsrchr);
869
#elif defined GNULIB_POSIXCHECK
871
# if HAVE_RAW_DECL_WCSRCHR
872
_GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - "
873
"use gnulib module wcsrchr for portability");
878
/* Return the length of the initial segmet of WCS which consists entirely
879
of wide characters not in REJECT. */
882
_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)
885
_GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
886
_GL_CXXALIASWARN (wcscspn);
887
#elif defined GNULIB_POSIXCHECK
889
# if HAVE_RAW_DECL_WCSCSPN
890
_GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - "
891
"use gnulib module wcscspn for portability");
896
/* Return the length of the initial segmet of WCS which consists entirely
897
of wide characters in ACCEPT. */
900
_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)
903
_GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
904
_GL_CXXALIASWARN (wcsspn);
905
#elif defined GNULIB_POSIXCHECK
907
# if HAVE_RAW_DECL_WCSSPN
908
_GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - "
909
"use gnulib module wcsspn for portability");
914
/* Find the first occurrence in WCS of any character in ACCEPT. */
917
_GL_FUNCDECL_SYS (wcspbrk, wchar_t *,
918
(const wchar_t *wcs, const wchar_t *accept)
921
/* On some systems, this function is defined as an overloaded function:
923
const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *);
924
wchar_t * std::wcspbrk (wchar_t *, const wchar_t *);
926
_GL_CXXALIAS_SYS_CAST2 (wcspbrk,
927
wchar_t *, (const wchar_t *, const wchar_t *),
928
const wchar_t *, (const wchar_t *, const wchar_t *));
929
# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
930
&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
931
_GL_CXXALIASWARN1 (wcspbrk, wchar_t *,
932
(wchar_t *wcs, const wchar_t *accept));
933
_GL_CXXALIASWARN1 (wcspbrk, const wchar_t *,
934
(const wchar_t *wcs, const wchar_t *accept));
936
_GL_CXXALIASWARN (wcspbrk);
938
#elif defined GNULIB_POSIXCHECK
940
# if HAVE_RAW_DECL_WCSPBRK
941
_GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - "
942
"use gnulib module wcspbrk for portability");
947
/* Find the first occurrence of NEEDLE in HAYSTACK. */
950
_GL_FUNCDECL_SYS (wcsstr, wchar_t *,
951
(const wchar_t *haystack, const wchar_t *needle)
954
/* On some systems, this function is defined as an overloaded function:
956
const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *);
957
wchar_t * std::wcsstr (wchar_t *, const wchar_t *);
959
_GL_CXXALIAS_SYS_CAST2 (wcsstr,
960
wchar_t *, (const wchar_t *, const wchar_t *),
961
const wchar_t *, (const wchar_t *, const wchar_t *));
962
# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
963
&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
964
_GL_CXXALIASWARN1 (wcsstr, wchar_t *,
965
(wchar_t *haystack, const wchar_t *needle));
966
_GL_CXXALIASWARN1 (wcsstr, const wchar_t *,
967
(const wchar_t *haystack, const wchar_t *needle));
969
_GL_CXXALIASWARN (wcsstr);
971
#elif defined GNULIB_POSIXCHECK
973
# if HAVE_RAW_DECL_WCSSTR
974
_GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - "
975
"use gnulib module wcsstr for portability");
980
/* Divide WCS into tokens separated by characters in DELIM. */
983
_GL_FUNCDECL_SYS (wcstok, wchar_t *,
984
(wchar_t *wcs, const wchar_t *delim, wchar_t **ptr));
986
_GL_CXXALIAS_SYS (wcstok, wchar_t *,
987
(wchar_t *wcs, const wchar_t *delim, wchar_t **ptr));
988
_GL_CXXALIASWARN (wcstok);
989
#elif defined GNULIB_POSIXCHECK
991
# if HAVE_RAW_DECL_WCSTOK
992
_GL_WARN_ON_USE (wcstok, "wcstok is unportable - "
993
"use gnulib module wcstok for portability");
998
/* Determine number of column positions required for first N wide
999
characters (or fewer if S ends before this) in S. */
1000
#if @GNULIB_WCSWIDTH@
1001
# if @REPLACE_WCSWIDTH@
1002
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1004
# define wcswidth rpl_wcswidth
1006
_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n)
1007
_GL_ATTRIBUTE_PURE);
1008
_GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n));
1010
# if !@HAVE_WCSWIDTH@
1011
_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n)
1012
_GL_ATTRIBUTE_PURE);
1014
_GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n));
1016
_GL_CXXALIASWARN (wcswidth);
1017
#elif defined GNULIB_POSIXCHECK
1019
# if HAVE_RAW_DECL_WCSWIDTH
1020
_GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - "
1021
"use gnulib module wcswidth for portability");
1026
#endif /* _@GUARD_PREFIX@_WCHAR_H */
1027
#endif /* _@GUARD_PREFIX@_WCHAR_H */