/*
 * Copyright (c) 1999
 * Boris Fomitchev
 *
 * This material is provided "as is", with absolutely no warranty expressed
 * or implied. Any use is at your own risk.
 *
 * Permission to use or copy this software for any purpose is hereby granted
 * without fee, provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 *
 */

#ifndef _STLP_CWCTYPE

#ifndef _STLP_OUTERMOST_HEADER_ID
#  define _STLP_OUTERMOST_HEADER_ID 0x121
#  define _STLP_CWCTYPE
#  include <stl/_prolog.h>
#endif

#if (_STLP_OUTERMOST_HEADER_ID == 0x121)
#  ifndef _STLP_INTERNAL_CWCTYPE
#    include <stl/_cwctype.h>
#  endif
#endif

#if (_STLP_OUTERMOST_HEADER_ID != 0x121) || defined (_STLP_IMPORT_VENDOR_STD)
#  if defined (_STLP_HAS_INCLUDE_NEXT)
#    include_next <cwctype>
#  else
#    include _STLP_NATIVE_CPP_C_HEADER(cwctype)
#  endif
#endif

#if (_STLP_OUTERMOST_HEADER_ID == 0x121)
#  include <stl/_epilog.h>
#  undef _STLP_OUTERMOST_HEADER_ID
#endif

#endif /* _STLP_CWCTYPE */

// Local Variables:
// mode:C++
// End:
