/***************************************************************************
 * FILE: wctype.h/cwctype (Wide character classification functions)
 *
 * =========================================================================
 *
 *                          Open Watcom Project
 *
 * Copyright (c) 2004-2025 The Open Watcom Contributors. All Rights Reserved.
 * Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
 *
 *    This file is automatically generated. Do not edit directly.
 *
 * =========================================================================
 *
 * Description: This header is part of the C/C++ standard library. It
 *              declares functions and types used to classify wide
 *              characters.
 ***************************************************************************/
#ifndef _CWCTYPE_INCLUDED
#define _CWCTYPE_INCLUDED

#ifndef _ENABLE_AUTODEPEND
 #pragma read_only_file
#endif

#ifndef __cplusplus
 #error This header file requires C++
#endif

#ifndef __COMDEF_H_INCLUDED
 #include <_comdef.h>
#endif

extern "C" {

#define WEOF  ((std::wint_t)(-1)) /*  EOF equivalent for wide chars   */

#ifndef _STDWINT_T_DEFINED
#define _STDWINT_T_DEFINED
 namespace std {
   typedef wchar_t wint_t;
 }
 typedef std::wint_t __w_wint_t;
#endif

#ifndef _STDWCTYPE_T_DEFINED
#define _STDWCTYPE_T_DEFINED
 namespace std {
   typedef wchar_t wctype_t;
 }
#endif

#ifndef _STDWCTRANS_T_DEFINED
 #define _STDWCTRANS_T_DEFINED
 namespace std {
   typedef wchar_t wctrans_t;
 }
#endif

namespace std {

_WCRTLINK extern int        iswalnum( wint_t __wc );
_WCRTLINK extern int        iswalpha( wint_t __wc );
_WCRTLINK extern int        iswcntrl( wint_t __wc );
_WCRTLINK extern int        iswdigit( wint_t __wc );
_WCRTLINK extern int        iswgraph( wint_t __wc );
_WCRTLINK extern int        iswlower( wint_t __wc );
_WCRTLINK extern int        iswprint( wint_t __wc );
_WCRTLINK extern int        iswpunct( wint_t __wc );
_WCRTLINK extern int        iswspace( wint_t __wc );
_WCRTLINK extern int        iswupper( wint_t __wc );
_WCRTLINK extern int        iswxdigit( wint_t __wc );
_WCRTLINK extern int        iswctype( wint_t __wc, wctype_t __desc );
#if !defined( _NO_EXT_KEYS ) || __STDC_VERSION__ >= 199901L /* extensions enabled or C99 */
_WCRTLINK extern int        iswblank( wint_t __wc );
#endif /* extensions enabled */
_WCRTLINK extern wint_t     towlower( wint_t __wc );
_WCRTLINK extern wint_t     towupper( wint_t __wc );
_WCRTLINK extern wctype_t   wctype( const char *__property );

_WCRTLINK extern wint_t     towctrans( wint_t __wc, wctrans_t __desc );
_WCRTLINK extern wctrans_t  wctrans( const char *__property );

} // namespace std

#if defined( _LINUX_SOURCE ) || !defined( _NO_EXT_KEYS ) /* extensions enabled */
_WCRTLINK extern int        iswascii( __w_wint_t __wc );
_WCRTLINK extern int        __iswcsymf( __w_wint_t __wc );
_WCRTLINK extern int        __iswcsym( __w_wint_t __wc );
#ifndef __FUNCTION_DATA_ACCESS
#define __iswcsymf(__c)     (iswalpha(__c) || ((__c)=='_'))
#define __iswcsym(__c)      (iswalnum(__c) || ((__c)=='_'))
#endif
#endif /* extensions enabled */

} /* extern "C" */

#endif
