1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ 2 /* A substitute for ISO C99 <wchar.h>, for platforms that have issues. 3 4 Copyright (C) 2007-2012 Free Software Foundation, Inc. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3, or (at your option) 9 any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, see <http://www.gnu.org/licenses/>. */ 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 GCC system_header 31 #endif 32 33 34 #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 35 /* Special invocation convention: 36 - Inside glibc and uClibc header files. 37 - On HP-UX 11.00 we have a sequence of nested includes 38 <wchar.h> -> <stdlib.h> -> <stdint.h>, and the latter includes <wchar.h>, 39 once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h> 40 and once directly. In both situations 'wint_t' is not yet defined, 41 therefore we cannot provide the function overrides; instead include only 42 the system's <wchar.h>. 43 - On IRIX 6.5, similarly, we have an include <wchar.h> -> <wctype.h>, and 44 the latter includes <wchar.h>. But here, we have no way to detect whether 45 <wctype.h> is completely included or is still being included. */ 46 47 #include_next <wchar.h> 48 49 #else 50 /* Normal invocation convention. */ 51 52 #ifndef _GL_WCHAR_H 53 54 #define _GL_ALREADY_INCLUDING_WCHAR_H 55 56 #if 1 57 # include <features.h> /* for __GLIBC__ */ 58 #endif 59 60 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before 61 <wchar.h>. 62 BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be 63 included before <wchar.h>. 64 In some builds of uClibc, <wchar.h> is nonexistent and wchar_t is defined 65 by <stddef.h>. 66 But avoid namespace pollution on glibc systems. */ 67 #if !(defined __GLIBC__ && !defined __UCLIBC__) 68 # include <stddef.h> 69 #endif 70 #ifndef __GLIBC__ 71 # include <stdio.h> 72 # include <time.h> 73 #endif 74 75 /* Include the original <wchar.h> if it exists. 76 Some builds of uClibc lack it. */ 77 /* The include_next requires a split double-inclusion guard. */ 78 #if 1 79 # include_next <wchar.h> 80 #endif 81 82 #undef _GL_ALREADY_INCLUDING_WCHAR_H 83 84 #ifndef _GL_WCHAR_H 85 #define _GL_WCHAR_H 86 87 /* The __attribute__ feature is available in gcc versions 2.5 and later. 88 The attribute __pure__ was added in gcc 2.96. */ 89 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) 90 # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) 91 #else 92 # define _GL_ATTRIBUTE_PURE /* empty */ 93 #endif 94 95 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ 96 #ifndef _GL_CXXDEFS_H 97 #define _GL_CXXDEFS_H 98 99 /* The three most frequent use cases of these macros are: 100 101 * For providing a substitute for a function that is missing on some 102 platforms, but is declared and works fine on the platforms on which 103 it exists: 104 105 #if @GNULIB_FOO@ 106 # if !@HAVE_FOO@ 107 _GL_FUNCDECL_SYS (foo, ...); 108 # endif 109 _GL_CXXALIAS_SYS (foo, ...); 110 _GL_CXXALIASWARN (foo); 111 #elif defined GNULIB_POSIXCHECK 112 ... 113 #endif 114 115 * For providing a replacement for a function that exists on all platforms, 116 but is broken/insufficient and needs to be replaced on some platforms: 117 118 #if @GNULIB_FOO@ 119 # if @REPLACE_FOO@ 120 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 121 # undef foo 122 # define foo rpl_foo 123 # endif 124 _GL_FUNCDECL_RPL (foo, ...); 125 _GL_CXXALIAS_RPL (foo, ...); 126 # else 127 _GL_CXXALIAS_SYS (foo, ...); 128 # endif 129 _GL_CXXALIASWARN (foo); 130 #elif defined GNULIB_POSIXCHECK 131 ... 132 #endif 133 134 * For providing a replacement for a function that exists on some platforms 135 but is broken/insufficient and needs to be replaced on some of them and 136 is additionally either missing or undeclared on some other platforms: 137 138 #if @GNULIB_FOO@ 139 # if @REPLACE_FOO@ 140 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 141 # undef foo 142 # define foo rpl_foo 143 # endif 144 _GL_FUNCDECL_RPL (foo, ...); 145 _GL_CXXALIAS_RPL (foo, ...); 146 # else 147 # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ 148 _GL_FUNCDECL_SYS (foo, ...); 149 # endif 150 _GL_CXXALIAS_SYS (foo, ...); 151 # endif 152 _GL_CXXALIASWARN (foo); 153 #elif defined GNULIB_POSIXCHECK 154 ... 155 #endif 156 */ 157 158 /* _GL_EXTERN_C declaration; 159 performs the declaration with C linkage. */ 160 #if defined __cplusplus 161 # define _GL_EXTERN_C extern "C" 162 #else 163 # define _GL_EXTERN_C extern 164 #endif 165 166 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); 167 declares a replacement function, named rpl_func, with the given prototype, 168 consisting of return type, parameters, and attributes. 169 Example: 170 _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) 171 _GL_ARG_NONNULL ((1))); 172 */ 173 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ 174 _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) 175 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ 176 _GL_EXTERN_C rettype rpl_func parameters_and_attributes 177 178 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); 179 declares the system function, named func, with the given prototype, 180 consisting of return type, parameters, and attributes. 181 Example: 182 _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) 183 _GL_ARG_NONNULL ((1))); 184 */ 185 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ 186 _GL_EXTERN_C rettype func parameters_and_attributes 187 188 /* _GL_CXXALIAS_RPL (func, rettype, parameters); 189 declares a C++ alias called GNULIB_NAMESPACE::func 190 that redirects to rpl_func, if GNULIB_NAMESPACE is defined. 191 Example: 192 _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); 193 */ 194 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ 195 _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) 196 #if defined __cplusplus && defined GNULIB_NAMESPACE 197 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ 198 namespace GNULIB_NAMESPACE \ 199 { \ 200 rettype (*const func) parameters = ::rpl_func; \ 201 } \ 202 _GL_EXTERN_C int _gl_cxxalias_dummy 203 #else 204 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ 205 _GL_EXTERN_C int _gl_cxxalias_dummy 206 #endif 207 208 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); 209 is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); 210 except that the C function rpl_func may have a slightly different 211 declaration. A cast is used to silence the "invalid conversion" error 212 that would otherwise occur. */ 213 #if defined __cplusplus && defined GNULIB_NAMESPACE 214 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ 215 namespace GNULIB_NAMESPACE \ 216 { \ 217 rettype (*const func) parameters = \ 218 reinterpret_cast<rettype(*)parameters>(::rpl_func); \ 219 } \ 220 _GL_EXTERN_C int _gl_cxxalias_dummy 221 #else 222 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ 223 _GL_EXTERN_C int _gl_cxxalias_dummy 224 #endif 225 226 /* _GL_CXXALIAS_SYS (func, rettype, parameters); 227 declares a C++ alias called GNULIB_NAMESPACE::func 228 that redirects to the system provided function func, if GNULIB_NAMESPACE 229 is defined. 230 Example: 231 _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); 232 */ 233 #if defined __cplusplus && defined GNULIB_NAMESPACE 234 /* If we were to write 235 rettype (*const func) parameters = ::func; 236 like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls 237 better (remove an indirection through a 'static' pointer variable), 238 but then the _GL_CXXALIASWARN macro below would cause a warning not only 239 for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */ 240 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ 241 namespace GNULIB_NAMESPACE \ 242 { \ 243 static rettype (*func) parameters = ::func; \ 244 } \ 245 _GL_EXTERN_C int _gl_cxxalias_dummy 246 #else 247 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ 248 _GL_EXTERN_C int _gl_cxxalias_dummy 249 #endif 250 251 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); 252 is like _GL_CXXALIAS_SYS (func, rettype, parameters); 253 except that the C function func may have a slightly different declaration. 254 A cast is used to silence the "invalid conversion" error that would 255 otherwise occur. */ 256 #if defined __cplusplus && defined GNULIB_NAMESPACE 257 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ 258 namespace GNULIB_NAMESPACE \ 259 { \ 260 static rettype (*func) parameters = \ 261 reinterpret_cast<rettype(*)parameters>(::func); \ 262 } \ 263 _GL_EXTERN_C int _gl_cxxalias_dummy 264 #else 265 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ 266 _GL_EXTERN_C int _gl_cxxalias_dummy 267 #endif 268 269 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); 270 is like _GL_CXXALIAS_SYS (func, rettype, parameters); 271 except that the C function is picked among a set of overloaded functions, 272 namely the one with rettype2 and parameters2. Two consecutive casts 273 are used to silence the "cannot find a match" and "invalid conversion" 274 errors that would otherwise occur. */ 275 #if defined __cplusplus && defined GNULIB_NAMESPACE 276 /* The outer cast must be a reinterpret_cast. 277 The inner cast: When the function is defined as a set of overloaded 278 functions, it works as a static_cast<>, choosing the designated variant. 279 When the function is defined as a single variant, it works as a 280 reinterpret_cast<>. The parenthesized cast syntax works both ways. */ 281 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ 282 namespace GNULIB_NAMESPACE \ 283 { \ 284 static rettype (*func) parameters = \ 285 reinterpret_cast<rettype(*)parameters>( \ 286 (rettype2(*)parameters2)(::func)); \ 287 } \ 288 _GL_EXTERN_C int _gl_cxxalias_dummy 289 #else 290 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ 291 _GL_EXTERN_C int _gl_cxxalias_dummy 292 #endif 293 294 /* _GL_CXXALIASWARN (func); 295 causes a warning to be emitted when ::func is used but not when 296 GNULIB_NAMESPACE::func is used. func must be defined without overloaded 297 variants. */ 298 #if defined __cplusplus && defined GNULIB_NAMESPACE 299 # define _GL_CXXALIASWARN(func) \ 300 _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) 301 # define _GL_CXXALIASWARN_1(func,namespace) \ 302 _GL_CXXALIASWARN_2 (func, namespace) 303 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, 304 we enable the warning only when not optimizing. */ 305 # if !__OPTIMIZE__ 306 # define _GL_CXXALIASWARN_2(func,namespace) \ 307 _GL_WARN_ON_USE (func, \ 308 "The symbol ::" #func " refers to the system function. " \ 309 "Use " #namespace "::" #func " instead.") 310 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 311 # define _GL_CXXALIASWARN_2(func,namespace) \ 312 extern __typeof__ (func) func 313 # else 314 # define _GL_CXXALIASWARN_2(func,namespace) \ 315 _GL_EXTERN_C int _gl_cxxalias_dummy 316 # endif 317 #else 318 # define _GL_CXXALIASWARN(func) \ 319 _GL_EXTERN_C int _gl_cxxalias_dummy 320 #endif 321 322 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); 323 causes a warning to be emitted when the given overloaded variant of ::func 324 is used but not when GNULIB_NAMESPACE::func is used. */ 325 #if defined __cplusplus && defined GNULIB_NAMESPACE 326 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ 327 _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ 328 GNULIB_NAMESPACE) 329 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ 330 _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) 331 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, 332 we enable the warning only when not optimizing. */ 333 # if !__OPTIMIZE__ 334 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 335 _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ 336 "The symbol ::" #func " refers to the system function. " \ 337 "Use " #namespace "::" #func " instead.") 338 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 339 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 340 extern __typeof__ (func) func 341 # else 342 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 343 _GL_EXTERN_C int _gl_cxxalias_dummy 344 # endif 345 #else 346 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ 347 _GL_EXTERN_C int _gl_cxxalias_dummy 348 #endif 349 350 #endif /* _GL_CXXDEFS_H */ 351 352 /* The definition of _GL_ARG_NONNULL is copied here. */ 353 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools 354 that the values passed as arguments n, ..., m must be non-NULL pointers. 355 n = 1 stands for the first argument, n = 2 for the second argument etc. */ 356 #ifndef _GL_ARG_NONNULL 357 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 358 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) 359 # else 360 # define _GL_ARG_NONNULL(params) 361 # endif 362 #endif 363 364 /* The definition of _GL_WARN_ON_USE is copied here. */ 365 #ifndef _GL_WARN_ON_USE 366 367 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) 368 /* A compiler attribute is available in gcc versions 4.3.0 and later. */ 369 # define _GL_WARN_ON_USE(function, message) \ 370 extern __typeof__ (function) function __attribute__ ((__warning__ (message))) 371 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 372 /* Verify the existence of the function. */ 373 # define _GL_WARN_ON_USE(function, message) \ 374 extern __typeof__ (function) function 375 # else /* Unsupported. */ 376 # define _GL_WARN_ON_USE(function, message) \ 377 _GL_WARN_EXTERN_C int _gl_warn_on_use 378 # endif 379 #endif 380 381 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string") 382 is like _GL_WARN_ON_USE (function, "string"), except that the function is 383 declared with the given prototype, consisting of return type, parameters, 384 and attributes. 385 This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does 386 not work in this case. */ 387 #ifndef _GL_WARN_ON_USE_CXX 388 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) 389 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 390 extern rettype function parameters_and_attributes \ 391 __attribute__ ((__warning__ (msg))) 392 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 393 /* Verify the existence of the function. */ 394 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 395 extern rettype function parameters_and_attributes 396 # else /* Unsupported. */ 397 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 398 _GL_WARN_EXTERN_C int _gl_warn_on_use 399 # endif 400 #endif 401 402 /* _GL_WARN_EXTERN_C declaration; 403 performs the declaration with C linkage. */ 404 #ifndef _GL_WARN_EXTERN_C 405 # if defined __cplusplus 406 # define _GL_WARN_EXTERN_C extern "C" 407 # else 408 # define _GL_WARN_EXTERN_C extern 409 # endif 410 #endif 411 412 413 /* Define wint_t and WEOF. (Also done in wctype.in.h.) */ 414 #if !1 && !defined wint_t 415 # define wint_t int 416 # ifndef WEOF 417 # define WEOF -1 418 # endif 419 #else 420 /* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>. 421 This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be 422 "unchanged by default argument promotions". Override it. */ 423 # if defined _MSC_VER 424 # if !GNULIB_defined_wint_t 425 # include <crtdefs.h> 426 typedef unsigned int rpl_wint_t; 427 # undef wint_t 428 # define wint_t rpl_wint_t 429 # define GNULIB_defined_wint_t 1 430 # endif 431 # endif 432 # ifndef WEOF 433 # define WEOF ((wint_t) -1) 434 # endif 435 #endif 436 437 438 /* Override mbstate_t if it is too small. 439 On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for 440 implementing mbrtowc for encodings like UTF-8. */ 441 #if !(1 && 1) || 0 442 # if !GNULIB_defined_mbstate_t 443 typedef int rpl_mbstate_t; 444 # undef mbstate_t 445 # define mbstate_t rpl_mbstate_t 446 # define GNULIB_defined_mbstate_t 1 447 # endif 448 #endif 449 450 451 /* Convert a single-byte character to a wide character. */ 452 #if 0 453 # if 0 454 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 455 # undef btowc 456 # define btowc rpl_btowc 457 # endif 458 _GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); 459 _GL_CXXALIAS_RPL (btowc, wint_t, (int c)); 460 # else 461 # if !1 462 _GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); 463 # endif 464 _GL_CXXALIAS_SYS (btowc, wint_t, (int c)); 465 # endif 466 _GL_CXXALIASWARN (btowc); 467 #elif defined GNULIB_POSIXCHECK 468 # undef btowc 469 # if HAVE_RAW_DECL_BTOWC 470 _GL_WARN_ON_USE (btowc, "btowc is unportable - " 471 "use gnulib module btowc for portability"); 472 # endif 473 #endif 474 475 476 /* Convert a wide character to a single-byte character. */ 477 #if 0 478 # if 0 479 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 480 # undef wctob 481 # define wctob rpl_wctob 482 # endif 483 _GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); 484 _GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); 485 # else 486 # if !defined wctob && !1 487 /* wctob is provided by gnulib, or wctob exists but is not declared. */ 488 _GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); 489 # endif 490 _GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); 491 # endif 492 _GL_CXXALIASWARN (wctob); 493 #elif defined GNULIB_POSIXCHECK 494 # undef wctob 495 # if HAVE_RAW_DECL_WCTOB 496 _GL_WARN_ON_USE (wctob, "wctob is unportable - " 497 "use gnulib module wctob for portability"); 498 # endif 499 #endif 500 501 502 /* Test whether *PS is in the initial state. */ 503 #if 1 504 # if 0 505 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 506 # undef mbsinit 507 # define mbsinit rpl_mbsinit 508 # endif 509 _GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); 510 _GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); 511 # else 512 # if !1 513 _GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); 514 # endif 515 _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); 516 # endif 517 _GL_CXXALIASWARN (mbsinit); 518 #elif defined GNULIB_POSIXCHECK 519 # undef mbsinit 520 # if HAVE_RAW_DECL_MBSINIT 521 _GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " 522 "use gnulib module mbsinit for portability"); 523 # endif 524 #endif 525 526 527 /* Convert a multibyte character to a wide character. */ 528 #if 1 529 # if 0 530 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 531 # undef mbrtowc 532 # define mbrtowc rpl_mbrtowc 533 # endif 534 _GL_FUNCDECL_RPL (mbrtowc, size_t, 535 (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); 536 _GL_CXXALIAS_RPL (mbrtowc, size_t, 537 (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); 538 # else 539 # if !1 540 _GL_FUNCDECL_SYS (mbrtowc, size_t, 541 (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); 542 # endif 543 _GL_CXXALIAS_SYS (mbrtowc, size_t, 544 (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); 545 # endif 546 _GL_CXXALIASWARN (mbrtowc); 547 #elif defined GNULIB_POSIXCHECK 548 # undef mbrtowc 549 # if HAVE_RAW_DECL_MBRTOWC 550 _GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " 551 "use gnulib module mbrtowc for portability"); 552 # endif 553 #endif 554 555 556 /* Recognize a multibyte character. */ 557 #if 0 558 # if 0 559 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 560 # undef mbrlen 561 # define mbrlen rpl_mbrlen 562 # endif 563 _GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); 564 _GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); 565 # else 566 # if !1 567 _GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); 568 # endif 569 _GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); 570 # endif 571 _GL_CXXALIASWARN (mbrlen); 572 #elif defined GNULIB_POSIXCHECK 573 # undef mbrlen 574 # if HAVE_RAW_DECL_MBRLEN 575 _GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " 576 "use gnulib module mbrlen for portability"); 577 # endif 578 #endif 579 580 581 /* Convert a string to a wide string. */ 582 #if 0 583 # if 0 584 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 585 # undef mbsrtowcs 586 # define mbsrtowcs rpl_mbsrtowcs 587 # endif 588 _GL_FUNCDECL_RPL (mbsrtowcs, size_t, 589 (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) 590 _GL_ARG_NONNULL ((2))); 591 _GL_CXXALIAS_RPL (mbsrtowcs, size_t, 592 (wchar_t *dest, const char **srcp, size_t len, 593 mbstate_t *ps)); 594 # else 595 # if !1 596 _GL_FUNCDECL_SYS (mbsrtowcs, size_t, 597 (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) 598 _GL_ARG_NONNULL ((2))); 599 # endif 600 _GL_CXXALIAS_SYS (mbsrtowcs, size_t, 601 (wchar_t *dest, const char **srcp, size_t len, 602 mbstate_t *ps)); 603 # endif 604 _GL_CXXALIASWARN (mbsrtowcs); 605 #elif defined GNULIB_POSIXCHECK 606 # undef mbsrtowcs 607 # if HAVE_RAW_DECL_MBSRTOWCS 608 _GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " 609 "use gnulib module mbsrtowcs for portability"); 610 # endif 611 #endif 612 613 614 /* Convert a string to a wide string. */ 615 #if 0 616 # if 0 617 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 618 # undef mbsnrtowcs 619 # define mbsnrtowcs rpl_mbsnrtowcs 620 # endif 621 _GL_FUNCDECL_RPL (mbsnrtowcs, size_t, 622 (wchar_t *dest, const char **srcp, size_t srclen, size_t len, 623 mbstate_t *ps) 624 _GL_ARG_NONNULL ((2))); 625 _GL_CXXALIAS_RPL (mbsnrtowcs, size_t, 626 (wchar_t *dest, const char **srcp, size_t srclen, size_t len, 627 mbstate_t *ps)); 628 # else 629 # if !1 630 _GL_FUNCDECL_SYS (mbsnrtowcs, size_t, 631 (wchar_t *dest, const char **srcp, size_t srclen, size_t len, 632 mbstate_t *ps) 633 _GL_ARG_NONNULL ((2))); 634 # endif 635 _GL_CXXALIAS_SYS (mbsnrtowcs, size_t, 636 (wchar_t *dest, const char **srcp, size_t srclen, size_t len, 637 mbstate_t *ps)); 638 # endif 639 _GL_CXXALIASWARN (mbsnrtowcs); 640 #elif defined GNULIB_POSIXCHECK 641 # undef mbsnrtowcs 642 # if HAVE_RAW_DECL_MBSNRTOWCS 643 _GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " 644 "use gnulib module mbsnrtowcs for portability"); 645 # endif 646 #endif 647 648 649 /* Convert a wide character to a multibyte character. */ 650 #if 0 651 # if 0 652 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 653 # undef wcrtomb 654 # define wcrtomb rpl_wcrtomb 655 # endif 656 _GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); 657 _GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); 658 # else 659 # if !1 660 _GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); 661 # endif 662 _GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); 663 # endif 664 _GL_CXXALIASWARN (wcrtomb); 665 #elif defined GNULIB_POSIXCHECK 666 # undef wcrtomb 667 # if HAVE_RAW_DECL_WCRTOMB 668 _GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " 669 "use gnulib module wcrtomb for portability"); 670 # endif 671 #endif 672 673 674 /* Convert a wide string to a string. */ 675 #if 0 676 # if 0 677 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 678 # undef wcsrtombs 679 # define wcsrtombs rpl_wcsrtombs 680 # endif 681 _GL_FUNCDECL_RPL (wcsrtombs, size_t, 682 (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) 683 _GL_ARG_NONNULL ((2))); 684 _GL_CXXALIAS_RPL (wcsrtombs, size_t, 685 (char *dest, const wchar_t **srcp, size_t len, 686 mbstate_t *ps)); 687 # else 688 # if !1 689 _GL_FUNCDECL_SYS (wcsrtombs, size_t, 690 (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) 691 _GL_ARG_NONNULL ((2))); 692 # endif 693 _GL_CXXALIAS_SYS (wcsrtombs, size_t, 694 (char *dest, const wchar_t **srcp, size_t len, 695 mbstate_t *ps)); 696 # endif 697 _GL_CXXALIASWARN (wcsrtombs); 698 #elif defined GNULIB_POSIXCHECK 699 # undef wcsrtombs 700 # if HAVE_RAW_DECL_WCSRTOMBS 701 _GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " 702 "use gnulib module wcsrtombs for portability"); 703 # endif 704 #endif 705 706 707 /* Convert a wide string to a string. */ 708 #if 0 709 # if 0 710 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 711 # undef wcsnrtombs 712 # define wcsnrtombs rpl_wcsnrtombs 713 # endif 714 _GL_FUNCDECL_RPL (wcsnrtombs, size_t, 715 (char *dest, const wchar_t **srcp, size_t srclen, size_t len, 716 mbstate_t *ps) 717 _GL_ARG_NONNULL ((2))); 718 _GL_CXXALIAS_RPL (wcsnrtombs, size_t, 719 (char *dest, const wchar_t **srcp, size_t srclen, size_t len, 720 mbstate_t *ps)); 721 # else 722 # if !1 723 _GL_FUNCDECL_SYS (wcsnrtombs, size_t, 724 (char *dest, const wchar_t **srcp, size_t srclen, size_t len, 725 mbstate_t *ps) 726 _GL_ARG_NONNULL ((2))); 727 # endif 728 _GL_CXXALIAS_SYS (wcsnrtombs, size_t, 729 (char *dest, const wchar_t **srcp, size_t srclen, size_t len, 730 mbstate_t *ps)); 731 # endif 732 _GL_CXXALIASWARN (wcsnrtombs); 733 #elif defined GNULIB_POSIXCHECK 734 # undef wcsnrtombs 735 # if HAVE_RAW_DECL_WCSNRTOMBS 736 _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " 737 "use gnulib module wcsnrtombs for portability"); 738 # endif 739 #endif 740 741 742 /* Return the number of screen columns needed for WC. */ 743 #if 1 744 # if 0 745 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 746 # undef wcwidth 747 # define wcwidth rpl_wcwidth 748 # endif 749 _GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); 750 _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); 751 # else 752 # if !1 753 /* wcwidth exists but is not declared. */ 754 _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); 755 # endif 756 _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); 757 # endif 758 _GL_CXXALIASWARN (wcwidth); 759 #elif defined GNULIB_POSIXCHECK 760 # undef wcwidth 761 # if HAVE_RAW_DECL_WCWIDTH 762 _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " 763 "use gnulib module wcwidth for portability"); 764 # endif 765 #endif 766 767 768 /* Search N wide characters of S for C. */ 769 #if 0 770 # if !1 771 _GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n) 772 _GL_ATTRIBUTE_PURE); 773 # endif 774 /* On some systems, this function is defined as an overloaded function: 775 extern "C++" { 776 const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); 777 wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); 778 } */ 779 _GL_CXXALIAS_SYS_CAST2 (wmemchr, 780 wchar_t *, (const wchar_t *, wchar_t, size_t), 781 const wchar_t *, (const wchar_t *, wchar_t, size_t)); 782 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ 783 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) 784 _GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); 785 _GL_CXXALIASWARN1 (wmemchr, const wchar_t *, 786 (const wchar_t *s, wchar_t c, size_t n)); 787 # else 788 _GL_CXXALIASWARN (wmemchr); 789 # endif 790 #elif defined GNULIB_POSIXCHECK 791 # undef wmemchr 792 # if HAVE_RAW_DECL_WMEMCHR 793 _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " 794 "use gnulib module wmemchr for portability"); 795 # endif 796 #endif 797 798 799 /* Compare N wide characters of S1 and S2. */ 800 #if 0 801 # if !1 802 _GL_FUNCDECL_SYS (wmemcmp, int, 803 (const wchar_t *s1, const wchar_t *s2, size_t n) 804 _GL_ATTRIBUTE_PURE); 805 # endif 806 _GL_CXXALIAS_SYS (wmemcmp, int, 807 (const wchar_t *s1, const wchar_t *s2, size_t n)); 808 _GL_CXXALIASWARN (wmemcmp); 809 #elif defined GNULIB_POSIXCHECK 810 # undef wmemcmp 811 # if HAVE_RAW_DECL_WMEMCMP 812 _GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " 813 "use gnulib module wmemcmp for portability"); 814 # endif 815 #endif 816 817 818 /* Copy N wide characters of SRC to DEST. */ 819 #if 0 820 # if !1 821 _GL_FUNCDECL_SYS (wmemcpy, wchar_t *, 822 (wchar_t *dest, const wchar_t *src, size_t n)); 823 # endif 824 _GL_CXXALIAS_SYS (wmemcpy, wchar_t *, 825 (wchar_t *dest, const wchar_t *src, size_t n)); 826 _GL_CXXALIASWARN (wmemcpy); 827 #elif defined GNULIB_POSIXCHECK 828 # undef wmemcpy 829 # if HAVE_RAW_DECL_WMEMCPY 830 _GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " 831 "use gnulib module wmemcpy for portability"); 832 # endif 833 #endif 834 835 836 /* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for 837 overlapping memory areas. */ 838 #if 0 839 # if !1 840 _GL_FUNCDECL_SYS (wmemmove, wchar_t *, 841 (wchar_t *dest, const wchar_t *src, size_t n)); 842 # endif 843 _GL_CXXALIAS_SYS (wmemmove, wchar_t *, 844 (wchar_t *dest, const wchar_t *src, size_t n)); 845 _GL_CXXALIASWARN (wmemmove); 846 #elif defined GNULIB_POSIXCHECK 847 # undef wmemmove 848 # if HAVE_RAW_DECL_WMEMMOVE 849 _GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " 850 "use gnulib module wmemmove for portability"); 851 # endif 852 #endif 853 854 855 /* Set N wide characters of S to C. */ 856 #if 0 857 # if !1 858 _GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); 859 # endif 860 _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); 861 _GL_CXXALIASWARN (wmemset); 862 #elif defined GNULIB_POSIXCHECK 863 # undef wmemset 864 # if HAVE_RAW_DECL_WMEMSET 865 _GL_WARN_ON_USE (wmemset, "wmemset is unportable - " 866 "use gnulib module wmemset for portability"); 867 # endif 868 #endif 869 870 871 /* Return the number of wide characters in S. */ 872 #if 0 873 # if !1 874 _GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); 875 # endif 876 _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); 877 _GL_CXXALIASWARN (wcslen); 878 #elif defined GNULIB_POSIXCHECK 879 # undef wcslen 880 # if HAVE_RAW_DECL_WCSLEN 881 _GL_WARN_ON_USE (wcslen, "wcslen is unportable - " 882 "use gnulib module wcslen for portability"); 883 # endif 884 #endif 885 886 887 /* Return the number of wide characters in S, but at most MAXLEN. */ 888 #if 0 889 # if !1 890 _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) 891 _GL_ATTRIBUTE_PURE); 892 # endif 893 _GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); 894 _GL_CXXALIASWARN (wcsnlen); 895 #elif defined GNULIB_POSIXCHECK 896 # undef wcsnlen 897 # if HAVE_RAW_DECL_WCSNLEN 898 _GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " 899 "use gnulib module wcsnlen for portability"); 900 # endif 901 #endif 902 903 904 /* Copy SRC to DEST. */ 905 #if 0 906 # if !1 907 _GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); 908 # endif 909 _GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); 910 _GL_CXXALIASWARN (wcscpy); 911 #elif defined GNULIB_POSIXCHECK 912 # undef wcscpy 913 # if HAVE_RAW_DECL_WCSCPY 914 _GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " 915 "use gnulib module wcscpy for portability"); 916 # endif 917 #endif 918 919 920 /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ 921 #if 0 922 # if !1 923 _GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); 924 # endif 925 _GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); 926 _GL_CXXALIASWARN (wcpcpy); 927 #elif defined GNULIB_POSIXCHECK 928 # undef wcpcpy 929 # if HAVE_RAW_DECL_WCPCPY 930 _GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " 931 "use gnulib module wcpcpy for portability"); 932 # endif 933 #endif 934 935 936 /* Copy no more than N wide characters of SRC to DEST. */ 937 #if 0 938 # if !1 939 _GL_FUNCDECL_SYS (wcsncpy, wchar_t *, 940 (wchar_t *dest, const wchar_t *src, size_t n)); 941 # endif 942 _GL_CXXALIAS_SYS (wcsncpy, wchar_t *, 943 (wchar_t *dest, const wchar_t *src, size_t n)); 944 _GL_CXXALIASWARN (wcsncpy); 945 #elif defined GNULIB_POSIXCHECK 946 # undef wcsncpy 947 # if HAVE_RAW_DECL_WCSNCPY 948 _GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " 949 "use gnulib module wcsncpy for portability"); 950 # endif 951 #endif 952 953 954 /* Copy no more than N characters of SRC to DEST, returning the address of 955 the last character written into DEST. */ 956 #if 0 957 # if !1 958 _GL_FUNCDECL_SYS (wcpncpy, wchar_t *, 959 (wchar_t *dest, const wchar_t *src, size_t n)); 960 # endif 961 _GL_CXXALIAS_SYS (wcpncpy, wchar_t *, 962 (wchar_t *dest, const wchar_t *src, size_t n)); 963 _GL_CXXALIASWARN (wcpncpy); 964 #elif defined GNULIB_POSIXCHECK 965 # undef wcpncpy 966 # if HAVE_RAW_DECL_WCPNCPY 967 _GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " 968 "use gnulib module wcpncpy for portability"); 969 # endif 970 #endif 971 972 973 /* Append SRC onto DEST. */ 974 #if 0 975 # if !1 976 _GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); 977 # endif 978 _GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); 979 _GL_CXXALIASWARN (wcscat); 980 #elif defined GNULIB_POSIXCHECK 981 # undef wcscat 982 # if HAVE_RAW_DECL_WCSCAT 983 _GL_WARN_ON_USE (wcscat, "wcscat is unportable - " 984 "use gnulib module wcscat for portability"); 985 # endif 986 #endif 987 988 989 /* Append no more than N wide characters of SRC onto DEST. */ 990 #if 0 991 # if !1 992 _GL_FUNCDECL_SYS (wcsncat, wchar_t *, 993 (wchar_t *dest, const wchar_t *src, size_t n)); 994 # endif 995 _GL_CXXALIAS_SYS (wcsncat, wchar_t *, 996 (wchar_t *dest, const wchar_t *src, size_t n)); 997 _GL_CXXALIASWARN (wcsncat); 998 #elif defined GNULIB_POSIXCHECK 999 # undef wcsncat 1000 # if HAVE_RAW_DECL_WCSNCAT 1001 _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " 1002 "use gnulib module wcsncat for portability"); 1003 # endif 1004 #endif 1005 1006 1007 /* Compare S1 and S2. */ 1008 #if 0 1009 # if !1 1010 _GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) 1011 _GL_ATTRIBUTE_PURE); 1012 # endif 1013 _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); 1014 _GL_CXXALIASWARN (wcscmp); 1015 #elif defined GNULIB_POSIXCHECK 1016 # undef wcscmp 1017 # if HAVE_RAW_DECL_WCSCMP 1018 _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " 1019 "use gnulib module wcscmp for portability"); 1020 # endif 1021 #endif 1022 1023 1024 /* Compare no more than N wide characters of S1 and S2. */ 1025 #if 0 1026 # if !1 1027 _GL_FUNCDECL_SYS (wcsncmp, int, 1028 (const wchar_t *s1, const wchar_t *s2, size_t n) 1029 _GL_ATTRIBUTE_PURE); 1030 # endif 1031 _GL_CXXALIAS_SYS (wcsncmp, int, 1032 (const wchar_t *s1, const wchar_t *s2, size_t n)); 1033 _GL_CXXALIASWARN (wcsncmp); 1034 #elif defined GNULIB_POSIXCHECK 1035 # undef wcsncmp 1036 # if HAVE_RAW_DECL_WCSNCMP 1037 _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " 1038 "use gnulib module wcsncmp for portability"); 1039 # endif 1040 #endif 1041 1042 1043 /* Compare S1 and S2, ignoring case. */ 1044 #if 0 1045 # if !1 1046 _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) 1047 _GL_ATTRIBUTE_PURE); 1048 # endif 1049 _GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); 1050 _GL_CXXALIASWARN (wcscasecmp); 1051 #elif defined GNULIB_POSIXCHECK 1052 # undef wcscasecmp 1053 # if HAVE_RAW_DECL_WCSCASECMP 1054 _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " 1055 "use gnulib module wcscasecmp for portability"); 1056 # endif 1057 #endif 1058 1059 1060 /* Compare no more than N chars of S1 and S2, ignoring case. */ 1061 #if 0 1062 # if !1 1063 _GL_FUNCDECL_SYS (wcsncasecmp, int, 1064 (const wchar_t *s1, const wchar_t *s2, size_t n) 1065 _GL_ATTRIBUTE_PURE); 1066 # endif 1067 _GL_CXXALIAS_SYS (wcsncasecmp, int, 1068 (const wchar_t *s1, const wchar_t *s2, size_t n)); 1069 _GL_CXXALIASWARN (wcsncasecmp); 1070 #elif defined GNULIB_POSIXCHECK 1071 # undef wcsncasecmp 1072 # if HAVE_RAW_DECL_WCSNCASECMP 1073 _GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " 1074 "use gnulib module wcsncasecmp for portability"); 1075 # endif 1076 #endif 1077 1078 1079 /* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE 1080 category of the current locale. */ 1081 #if 0 1082 # if !1 1083 _GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); 1084 # endif 1085 _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); 1086 _GL_CXXALIASWARN (wcscoll); 1087 #elif defined GNULIB_POSIXCHECK 1088 # undef wcscoll 1089 # if HAVE_RAW_DECL_WCSCOLL 1090 _GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " 1091 "use gnulib module wcscoll for portability"); 1092 # endif 1093 #endif 1094 1095 1096 /* Transform S2 into array pointed to by S1 such that if wcscmp is applied 1097 to two transformed strings the result is the as applying 'wcscoll' to the 1098 original strings. */ 1099 #if 0 1100 # if !1 1101 _GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); 1102 # endif 1103 _GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); 1104 _GL_CXXALIASWARN (wcsxfrm); 1105 #elif defined GNULIB_POSIXCHECK 1106 # undef wcsxfrm 1107 # if HAVE_RAW_DECL_WCSXFRM 1108 _GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " 1109 "use gnulib module wcsxfrm for portability"); 1110 # endif 1111 #endif 1112 1113 1114 /* Duplicate S, returning an identical malloc'd string. */ 1115 #if 0 1116 # if !1 1117 _GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s)); 1118 # endif 1119 _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); 1120 _GL_CXXALIASWARN (wcsdup); 1121 #elif defined GNULIB_POSIXCHECK 1122 # undef wcsdup 1123 # if HAVE_RAW_DECL_WCSDUP 1124 _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " 1125 "use gnulib module wcsdup for portability"); 1126 # endif 1127 #endif 1128 1129 1130 /* Find the first occurrence of WC in WCS. */ 1131 #if 0 1132 # if !1 1133 _GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc) 1134 _GL_ATTRIBUTE_PURE); 1135 # endif 1136 /* On some systems, this function is defined as an overloaded function: 1137 extern "C++" { 1138 const wchar_t * std::wcschr (const wchar_t *, wchar_t); 1139 wchar_t * std::wcschr (wchar_t *, wchar_t); 1140 } */ 1141 _GL_CXXALIAS_SYS_CAST2 (wcschr, 1142 wchar_t *, (const wchar_t *, wchar_t), 1143 const wchar_t *, (const wchar_t *, wchar_t)); 1144 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ 1145 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) 1146 _GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); 1147 _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); 1148 # else 1149 _GL_CXXALIASWARN (wcschr); 1150 # endif 1151 #elif defined GNULIB_POSIXCHECK 1152 # undef wcschr 1153 # if HAVE_RAW_DECL_WCSCHR 1154 _GL_WARN_ON_USE (wcschr, "wcschr is unportable - " 1155 "use gnulib module wcschr for portability"); 1156 # endif 1157 #endif 1158 1159 1160 /* Find the last occurrence of WC in WCS. */ 1161 #if 0 1162 # if !1 1163 _GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc) 1164 _GL_ATTRIBUTE_PURE); 1165 # endif 1166 /* On some systems, this function is defined as an overloaded function: 1167 extern "C++" { 1168 const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); 1169 wchar_t * std::wcsrchr (wchar_t *, wchar_t); 1170 } */ 1171 _GL_CXXALIAS_SYS_CAST2 (wcsrchr, 1172 wchar_t *, (const wchar_t *, wchar_t), 1173 const wchar_t *, (const wchar_t *, wchar_t)); 1174 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ 1175 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) 1176 _GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); 1177 _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); 1178 # else 1179 _GL_CXXALIASWARN (wcsrchr); 1180 # endif 1181 #elif defined GNULIB_POSIXCHECK 1182 # undef wcsrchr 1183 # if HAVE_RAW_DECL_WCSRCHR 1184 _GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " 1185 "use gnulib module wcsrchr for portability"); 1186 # endif 1187 #endif 1188 1189 1190 /* Return the length of the initial segmet of WCS which consists entirely 1191 of wide characters not in REJECT. */ 1192 #if 0 1193 # if !1 1194 _GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) 1195 _GL_ATTRIBUTE_PURE); 1196 # endif 1197 _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); 1198 _GL_CXXALIASWARN (wcscspn); 1199 #elif defined GNULIB_POSIXCHECK 1200 # undef wcscspn 1201 # if HAVE_RAW_DECL_WCSCSPN 1202 _GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " 1203 "use gnulib module wcscspn for portability"); 1204 # endif 1205 #endif 1206 1207 1208 /* Return the length of the initial segmet of WCS which consists entirely 1209 of wide characters in ACCEPT. */ 1210 #if 0 1211 # if !1 1212 _GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) 1213 _GL_ATTRIBUTE_PURE); 1214 # endif 1215 _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); 1216 _GL_CXXALIASWARN (wcsspn); 1217 #elif defined GNULIB_POSIXCHECK 1218 # undef wcsspn 1219 # if HAVE_RAW_DECL_WCSSPN 1220 _GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " 1221 "use gnulib module wcsspn for portability"); 1222 # endif 1223 #endif 1224 1225 1226 /* Find the first occurrence in WCS of any character in ACCEPT. */ 1227 #if 0 1228 # if !1 1229 _GL_FUNCDECL_SYS (wcspbrk, wchar_t *, 1230 (const wchar_t *wcs, const wchar_t *accept) 1231 _GL_ATTRIBUTE_PURE); 1232 # endif 1233 /* On some systems, this function is defined as an overloaded function: 1234 extern "C++" { 1235 const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); 1236 wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); 1237 } */ 1238 _GL_CXXALIAS_SYS_CAST2 (wcspbrk, 1239 wchar_t *, (const wchar_t *, const wchar_t *), 1240 const wchar_t *, (const wchar_t *, const wchar_t *)); 1241 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ 1242 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) 1243 _GL_CXXALIASWARN1 (wcspbrk, wchar_t *, 1244 (wchar_t *wcs, const wchar_t *accept)); 1245 _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, 1246 (const wchar_t *wcs, const wchar_t *accept)); 1247 # else 1248 _GL_CXXALIASWARN (wcspbrk); 1249 # endif 1250 #elif defined GNULIB_POSIXCHECK 1251 # undef wcspbrk 1252 # if HAVE_RAW_DECL_WCSPBRK 1253 _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " 1254 "use gnulib module wcspbrk for portability"); 1255 # endif 1256 #endif 1257 1258 1259 /* Find the first occurrence of NEEDLE in HAYSTACK. */ 1260 #if 0 1261 # if !1 1262 _GL_FUNCDECL_SYS (wcsstr, wchar_t *, 1263 (const wchar_t *haystack, const wchar_t *needle) 1264 _GL_ATTRIBUTE_PURE); 1265 # endif 1266 /* On some systems, this function is defined as an overloaded function: 1267 extern "C++" { 1268 const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); 1269 wchar_t * std::wcsstr (wchar_t *, const wchar_t *); 1270 } */ 1271 _GL_CXXALIAS_SYS_CAST2 (wcsstr, 1272 wchar_t *, (const wchar_t *, const wchar_t *), 1273 const wchar_t *, (const wchar_t *, const wchar_t *)); 1274 # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ 1275 && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) 1276 _GL_CXXALIASWARN1 (wcsstr, wchar_t *, 1277 (wchar_t *haystack, const wchar_t *needle)); 1278 _GL_CXXALIASWARN1 (wcsstr, const wchar_t *, 1279 (const wchar_t *haystack, const wchar_t *needle)); 1280 # else 1281 _GL_CXXALIASWARN (wcsstr); 1282 # endif 1283 #elif defined GNULIB_POSIXCHECK 1284 # undef wcsstr 1285 # if HAVE_RAW_DECL_WCSSTR 1286 _GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " 1287 "use gnulib module wcsstr for portability"); 1288 # endif 1289 #endif 1290 1291 1292 /* Divide WCS into tokens separated by characters in DELIM. */ 1293 #if 0 1294 # if !1 1295 _GL_FUNCDECL_SYS (wcstok, wchar_t *, 1296 (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); 1297 # endif 1298 _GL_CXXALIAS_SYS (wcstok, wchar_t *, 1299 (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); 1300 _GL_CXXALIASWARN (wcstok); 1301 #elif defined GNULIB_POSIXCHECK 1302 # undef wcstok 1303 # if HAVE_RAW_DECL_WCSTOK 1304 _GL_WARN_ON_USE (wcstok, "wcstok is unportable - " 1305 "use gnulib module wcstok for portability"); 1306 # endif 1307 #endif 1308 1309 1310 /* Determine number of column positions required for first N wide 1311 characters (or fewer if S ends before this) in S. */ 1312 #if 0 1313 # if 0 1314 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1315 # undef wcswidth 1316 # define wcswidth rpl_wcswidth 1317 # endif 1318 _GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n) 1319 _GL_ATTRIBUTE_PURE); 1320 _GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); 1321 # else 1322 # if !1 1323 _GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) 1324 _GL_ATTRIBUTE_PURE); 1325 # endif 1326 _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); 1327 # endif 1328 _GL_CXXALIASWARN (wcswidth); 1329 #elif defined GNULIB_POSIXCHECK 1330 # undef wcswidth 1331 # if HAVE_RAW_DECL_WCSWIDTH 1332 _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " 1333 "use gnulib module wcswidth for portability"); 1334 # endif 1335 #endif 1336 1337 1338 #endif /* _GL_WCHAR_H */ 1339 #endif /* _GL_WCHAR_H */ 1340 #endif 1341