0x10000040
?÷ /* Copyright (C) 1995-2021 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
. */
/*
* ISO C99 Standard: 7.24
* Extended multibyte and wide character utilities
*/
#ifndef _WCHAR_H
#define _WCHAR_H 1
#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
#include
/* Gather machine dependent type support. */
#include
#define __need_size_t
#define __need_wchar_t
#define __need_NULL
#include
#define __need___va_list
#include
#include
#include
#include
#include
#if defined __USE_UNIX98 || defined __USE_XOPEN2K
# include
#endif
#ifdef __USE_XOPEN2K8
# include
#endif
/* Tell the caller that we provide correct C++ prototypes. */
#if defined __cplusplus && __GNUC_PREREQ (4, 4)
# define __CORRECT_ISO_CPP_WCHAR_H_PROTO
#endif
#ifndef WCHAR_MIN
/* These constants might also be defined in . */
# define WCHAR_MIN __WCHAR_MIN
# define WCHAR_MAX __WCHAR_MAX
#endif
#ifndef WEOF
# define WEOF (0xffffffffu)
#endif
/* All versions of XPG prior to the publication of ISO C99 required
the bulk of 's declarations to appear in this header
(because did not exist prior to C99). In POSIX.1-2001
those declarations were marked as XSI extensions; in -2008 they
were additionally marked as obsolescent. _GNU_SOURCE mode
anticipates the removal of these declarations in the next revision
of POSIX. */
#if (defined __USE_XOPEN && !defined __USE_GNU \
&& !(defined __USE_XOPEN2K && !defined __USE_XOPEN2KXSI))
# include
#endif
__BEGIN_DECLS
/* This incomplete type is defined in but needed here because
of `wcsftime'. */
struct tm;
/* Copy SRC to DEST. */
extern wchar_t *wcscpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src)
__THROW __nonnull ((1, 2));
/* Copy no more than N wide-characters of SRC to DEST. */
extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src, size_t __n)
__THROW __nonnull ((1, 2));
/* Append SRC onto DEST. */
extern wchar_t *wcscat (wchar_t *__restrict __dest,
const wchar_t *__restrict __src)
__THROW __nonnull ((1, 2));
/* Append no more than N wide-characters of SRC onto DEST. */
extern wchar_t *wcsncat (wchar_t *__restrict __dest,
const wchar_t *__restrict __src, size_t __n)
__THROW __nonnull ((1, 2));
/* Compare S1 and S2. */
extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
__THROW __attribute_pure__ __nonnull ((1, 2));
/* Compare N wide-characters of S1 and S2. */
extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
__THROW __attribute_pure__ __nonnull ((1, 2));
#ifdef __USE_XOPEN2K8
/* Compare S1 and S2, ignoring case. */
extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) __THROW;
/* Compare no more than N chars of S1 and S2, ignoring case. */
extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
size_t __n) __THROW;
/* Similar to the two functions above but take the information from
the provided locale and not the global locale. */
extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
locale_t __loc) __THROW;
extern int w