Print this page
4964 nl_langinfo(CRNCYSTR) returns wrong alignment character
4999 libc test suite enhancements
4939 desire wcsnrtombs() function
Reviewed by: Jason King <jason.brian.king@gmail.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Approved by: TBD


   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 
  22 /*
  23  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  24  * Use is subject to license terms.
  25  */
  26 
  27 /*




  28  * An application should not include this header directly.  Instead it
  29  * should be included only through the inclusion of other Sun headers.
  30  *
  31  * The contents of this header is limited to identifiers specified in the
  32  * C Standard.  Any new identifiers specified in future amendments to the
  33  * C Standard must be placed in this header.  If these new identifiers
  34  * are required to also be in the C++ Standard "std" namespace, then for
  35  * anything other than macro definitions, corresponding "using" directives
  36  * must also be added to <wchar.h>.
  37  */
  38 
  39 #ifndef _ISO_WCHAR_ISO_H
  40 #define _ISO_WCHAR_ISO_H
  41 
  42 #pragma ident   "%Z%%M% %I%     %E% SMI"
  43 
  44 #include <sys/feature_tests.h>
  45 #include <stdio_tag.h>
  46 #include <wchar_impl.h>
  47 #include <iso/time_iso.h>
  48 
  49 #if (defined(__cplusplus) && (__cplusplus - 0 < 54321L)) || \
  50         (!defined(__cplusplus) && !defined(_STRICT_STDC)) || \
  51         defined(__EXTENSIONS__)
  52 #include <stdio.h>
  53 #endif  /*  (defined(__cplusplus) && (__cplusplus - 0 < 54321L)) ... */
  54 
  55 #if !defined(_STRICT_STDC) || defined(__EXTENSIONS__)
  56 #include <ctype.h>
  57 #include <stddef.h>
  58 #endif /* !defined(_STRICT_STDC) || defined(__EXTENSIONS__) */
  59 
  60 #include <sys/va_list.h>
  61 
  62 #ifdef  __cplusplus
  63 extern "C" {


 309 extern int      mbsinit(const mbstate_t *);
 310 extern size_t   mbrlen(const char *_RESTRICT_KYWD, size_t,
 311                         mbstate_t *_RESTRICT_KYWD);
 312 extern size_t   mbrtowc(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
 313                         size_t, mbstate_t *_RESTRICT_KYWD);
 314 extern size_t   mbsrtowcs(wchar_t *_RESTRICT_KYWD, const char **_RESTRICT_KYWD,
 315                         size_t, mbstate_t *_RESTRICT_KYWD);
 316 extern int      swprintf(wchar_t *_RESTRICT_KYWD, size_t,
 317                         const wchar_t *_RESTRICT_KYWD, ...);
 318 extern int      swscanf(const wchar_t *_RESTRICT_KYWD,
 319                         const wchar_t *_RESTRICT_KYWD, ...);
 320 extern int      vfwprintf(__FILE *_RESTRICT_KYWD, const wchar_t *_RESTRICT_KYWD,
 321                         __va_list);
 322 extern int      vwprintf(const wchar_t *_RESTRICT_KYWD, __va_list);
 323 extern int      vswprintf(wchar_t *_RESTRICT_KYWD, size_t,
 324                         const wchar_t *_RESTRICT_KYWD, __va_list);
 325 extern size_t   wcrtomb(char *_RESTRICT_KYWD, wchar_t,
 326                         mbstate_t *_RESTRICT_KYWD);
 327 extern size_t   wcsrtombs(char *_RESTRICT_KYWD, const wchar_t **_RESTRICT_KYWD,
 328                         size_t, mbstate_t *_RESTRICT_KYWD);




 329 extern int      wctob(wint_t);
 330 extern int      wmemcmp(const wchar_t *, const wchar_t *, size_t);
 331 extern wchar_t  *wmemcpy(wchar_t *_RESTRICT_KYWD,
 332                         const wchar_t *_RESTRICT_KYWD, size_t);
 333 extern wchar_t  *wmemmove(wchar_t *, const wchar_t *, size_t);
 334 extern wchar_t  *wmemset(wchar_t *, wchar_t, size_t);
 335 extern int      wprintf(const wchar_t *_RESTRICT_KYWD, ...);
 336 extern int      wscanf(const wchar_t *_RESTRICT_KYWD, ...);
 337 #if __cplusplus >= 199711L
 338 extern const wchar_t *wcsstr(const wchar_t *, const wchar_t *);
 339 extern "C++" {
 340         inline wchar_t *wcsstr(wchar_t *__ws1, const wchar_t *__ws2) {
 341                 return (wchar_t *)wcsstr((const wchar_t *)__ws1, __ws2);
 342         }
 343 }
 344 extern const wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
 345 extern "C++" {
 346         inline wchar_t *wmemchr(wchar_t *__ws, wchar_t __wc, size_t __n) {
 347                 return (wchar_t *)wmemchr((const wchar_t *)__ws, __wc, __n);
 348         }


 403 #endif  /* XPG4 or XPG4v2 */
 404 #endif  /* defined(_MSE_INT_H) */
 405 
 406 /* not XPG4 and not XPG4v2 */
 407 #if (!defined(_XPG4) && !defined(_XPG4_2) || defined(_XPG5))
 408 extern wint_t   btowc();
 409 extern int      fwprintf();
 410 extern int      fwscanf();
 411 extern int      fwide();
 412 extern int      mbsinit();
 413 extern size_t   mbrlen();
 414 extern size_t   mbrtowc();
 415 extern size_t   mbsrtowcs();
 416 extern int      swprintf();
 417 extern int      swscanf();
 418 extern int      vfwprintf();
 419 extern int      vwprintf();
 420 extern int      vswprintf();
 421 extern size_t   wcrtomb();
 422 extern size_t   wcsrtombs();




 423 extern wchar_t  *wcsstr();
 424 extern int      wctob();
 425 extern wchar_t  *wmemchr();
 426 extern int      wmemcmp();
 427 extern wchar_t  *wmemcpy();
 428 extern wchar_t  *wmemmove();
 429 extern wchar_t  *wmemset();
 430 extern int      wprintf();
 431 extern int      wscanf();
 432 #endif /* not XPG4 and not XPG4v2 */
 433 
 434 #endif /* __STDC__ */
 435 
 436 #if __cplusplus >= 199711L
 437 }
 438 #endif /* end of namespace std */
 439 
 440 #ifdef  __cplusplus
 441 }
 442 #endif


   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 
  22 /*
  23  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  24  * Use is subject to license terms.
  25  */
  26 
  27 /*
  28  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
  29  */
  30 
  31 /*
  32  * An application should not include this header directly.  Instead it
  33  * should be included only through the inclusion of other Sun headers.
  34  *
  35  * The contents of this header is limited to identifiers specified in the
  36  * C Standard.  Any new identifiers specified in future amendments to the
  37  * C Standard must be placed in this header.  If these new identifiers
  38  * are required to also be in the C++ Standard "std" namespace, then for
  39  * anything other than macro definitions, corresponding "using" directives
  40  * must also be added to <wchar.h>.
  41  */
  42 
  43 #ifndef _ISO_WCHAR_ISO_H
  44 #define _ISO_WCHAR_ISO_H
  45 


  46 #include <sys/feature_tests.h>
  47 #include <stdio_tag.h>
  48 #include <wchar_impl.h>
  49 #include <iso/time_iso.h>
  50 
  51 #if (defined(__cplusplus) && (__cplusplus - 0 < 54321L)) || \
  52         (!defined(__cplusplus) && !defined(_STRICT_STDC)) || \
  53         defined(__EXTENSIONS__)
  54 #include <stdio.h>
  55 #endif  /*  (defined(__cplusplus) && (__cplusplus - 0 < 54321L)) ... */
  56 
  57 #if !defined(_STRICT_STDC) || defined(__EXTENSIONS__)
  58 #include <ctype.h>
  59 #include <stddef.h>
  60 #endif /* !defined(_STRICT_STDC) || defined(__EXTENSIONS__) */
  61 
  62 #include <sys/va_list.h>
  63 
  64 #ifdef  __cplusplus
  65 extern "C" {


 311 extern int      mbsinit(const mbstate_t *);
 312 extern size_t   mbrlen(const char *_RESTRICT_KYWD, size_t,
 313                         mbstate_t *_RESTRICT_KYWD);
 314 extern size_t   mbrtowc(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
 315                         size_t, mbstate_t *_RESTRICT_KYWD);
 316 extern size_t   mbsrtowcs(wchar_t *_RESTRICT_KYWD, const char **_RESTRICT_KYWD,
 317                         size_t, mbstate_t *_RESTRICT_KYWD);
 318 extern int      swprintf(wchar_t *_RESTRICT_KYWD, size_t,
 319                         const wchar_t *_RESTRICT_KYWD, ...);
 320 extern int      swscanf(const wchar_t *_RESTRICT_KYWD,
 321                         const wchar_t *_RESTRICT_KYWD, ...);
 322 extern int      vfwprintf(__FILE *_RESTRICT_KYWD, const wchar_t *_RESTRICT_KYWD,
 323                         __va_list);
 324 extern int      vwprintf(const wchar_t *_RESTRICT_KYWD, __va_list);
 325 extern int      vswprintf(wchar_t *_RESTRICT_KYWD, size_t,
 326                         const wchar_t *_RESTRICT_KYWD, __va_list);
 327 extern size_t   wcrtomb(char *_RESTRICT_KYWD, wchar_t,
 328                         mbstate_t *_RESTRICT_KYWD);
 329 extern size_t   wcsrtombs(char *_RESTRICT_KYWD, const wchar_t **_RESTRICT_KYWD,
 330                         size_t, mbstate_t *_RESTRICT_KYWD);
 331 #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
 332 extern size_t   wcsnrtombs(char *_RESTRICT_KYWD, const wchar_t **_RESTRICT_KYWD,
 333                         size_t, size_t, mbstate_t *_RESTRICT_KYWD);
 334 #endif
 335 extern int      wctob(wint_t);
 336 extern int      wmemcmp(const wchar_t *, const wchar_t *, size_t);
 337 extern wchar_t  *wmemcpy(wchar_t *_RESTRICT_KYWD,
 338                         const wchar_t *_RESTRICT_KYWD, size_t);
 339 extern wchar_t  *wmemmove(wchar_t *, const wchar_t *, size_t);
 340 extern wchar_t  *wmemset(wchar_t *, wchar_t, size_t);
 341 extern int      wprintf(const wchar_t *_RESTRICT_KYWD, ...);
 342 extern int      wscanf(const wchar_t *_RESTRICT_KYWD, ...);
 343 #if __cplusplus >= 199711L
 344 extern const wchar_t *wcsstr(const wchar_t *, const wchar_t *);
 345 extern "C++" {
 346         inline wchar_t *wcsstr(wchar_t *__ws1, const wchar_t *__ws2) {
 347                 return (wchar_t *)wcsstr((const wchar_t *)__ws1, __ws2);
 348         }
 349 }
 350 extern const wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
 351 extern "C++" {
 352         inline wchar_t *wmemchr(wchar_t *__ws, wchar_t __wc, size_t __n) {
 353                 return (wchar_t *)wmemchr((const wchar_t *)__ws, __wc, __n);
 354         }


 409 #endif  /* XPG4 or XPG4v2 */
 410 #endif  /* defined(_MSE_INT_H) */
 411 
 412 /* not XPG4 and not XPG4v2 */
 413 #if (!defined(_XPG4) && !defined(_XPG4_2) || defined(_XPG5))
 414 extern wint_t   btowc();
 415 extern int      fwprintf();
 416 extern int      fwscanf();
 417 extern int      fwide();
 418 extern int      mbsinit();
 419 extern size_t   mbrlen();
 420 extern size_t   mbrtowc();
 421 extern size_t   mbsrtowcs();
 422 extern int      swprintf();
 423 extern int      swscanf();
 424 extern int      vfwprintf();
 425 extern int      vwprintf();
 426 extern int      vswprintf();
 427 extern size_t   wcrtomb();
 428 extern size_t   wcsrtombs();
 429 #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
 430 extern size_t   wcsnrtombs();
 431 #endif
 432 
 433 extern wchar_t  *wcsstr();
 434 extern int      wctob();
 435 extern wchar_t  *wmemchr();
 436 extern int      wmemcmp();
 437 extern wchar_t  *wmemcpy();
 438 extern wchar_t  *wmemmove();
 439 extern wchar_t  *wmemset();
 440 extern int      wprintf();
 441 extern int      wscanf();
 442 #endif /* not XPG4 and not XPG4v2 */
 443 
 444 #endif /* __STDC__ */
 445 
 446 #if __cplusplus >= 199711L
 447 }
 448 #endif /* end of namespace std */
 449 
 450 #ifdef  __cplusplus
 451 }
 452 #endif