19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* 29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999 39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Silicon Graphics Computer Systems, Inc. 49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999 69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev 79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed 99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk. 109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted 129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies. 139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted, 149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was 159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice. 169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_LOCALE 199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Basic framework: class locale and class locale::facet 219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_OUTERMOST_HEADER_ID 239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_OUTERMOST_HEADER_ID 0x1041 249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# include <stl/_prolog.h> 25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# define _STLP_LOCALE 269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (_STLP_OUTERMOST_HEADER_ID == 0x1041) && \ 29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott !(defined (_STLP_NO_IOSTREAMS) && defined (_STLP_IMPORT_VENDOR_STD)) 30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_ioserr.h> 319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Individual facets 33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# ifndef _STLP_INTERNAL_CTYPE_H 34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_ctype.h> 35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# ifndef _STLP_INTERNAL_CODECVT_H 38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_codecvt.h> 39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 41e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# ifndef _STLP_INTERNAL_COLLATE_H 42e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_collate.h> 43e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 45e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# ifndef _STLP_INTERNAL_NUM_PUT_H 46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_num_put.h> 47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# ifndef _STLP_INTERNAL_NUM_GET_H 50e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_num_get.h> 51e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// those never included separately anyway 54e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_monetary.h> 55e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_time_facets.h> 56e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_messages_facets.h> 579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// some stuff for streambuf iterators ended up defined there 599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Strictly speaking, _istream.h portion is only required for <iterator>, but it may break too many 609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// programs if we omit it 61e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# ifndef _STLP_ISTREAM_H 62e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include <stl/_istream.h> 63e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Convenience interfaces 669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef isspace 679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef isprint 689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef iscntrl 699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef isupper 709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef islower 719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef isalpha 729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef isdigit 739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef ispunct 749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef isxdigit 759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef isalnum 769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef isgraph 779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef toupper 789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef tolower 799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_BEGIN_NAMESPACE 819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool isspace (_CharT c, const locale& loc) 849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::space, c); } 859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool isprint (_CharT c, const locale& loc) 889720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::print, c); } 899720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 909720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 919720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool iscntrl (_CharT c, const locale& loc) 929720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::cntrl, c); } 939720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 949720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 959720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool isupper (_CharT c, const locale& loc) 969720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::upper, c); } 979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 989720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool islower (_CharT c, const locale& loc) 1009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::lower, c); } 1019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 1039720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool isalpha (_CharT c, const locale& loc) 1049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::alpha, c); } 1059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 1079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool isdigit (_CharT c, const locale& loc) 1089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::digit, c); } 1099720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 1119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool ispunct (_CharT c, const locale& loc) 1129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::punct, c); } 1139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 1159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool isxdigit (_CharT c, const locale& loc) 1169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::xdigit, c); } 1179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 1199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool isalnum (_CharT c, const locale& loc) 1209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::alnum, c); } 1219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 1239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline bool isgraph (_CharT c, const locale& loc) 1249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::graph, c); } 1259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 1279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline _CharT toupper(_CharT c, const locale& loc) 1289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).toupper(c); } 1299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT> 1319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline _CharT tolower(_CharT c, const locale& loc) 1329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return (use_facet<ctype<_CharT> >(loc)).tolower(c); } 1339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_END_NAMESPACE 1359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 136e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 137e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 138e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (_STLP_OUTERMOST_HEADER_ID != 0x1041) || defined (_STLP_IMPORT_VENDOR_STD) 139e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if defined (_STLP_HAS_INCLUDE_NEXT) 140e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include_next <locale> 141e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# else 142e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# include _STLP_NATIVE_HEADER(locale) 143e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 144e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 145e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 1469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if (_STLP_OUTERMOST_HEADER_ID == 0x1041) 1479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# include <stl/_epilog.h> 1489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef _STLP_OUTERMOST_HEADER_ID 1499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 1509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_LOCALE */ 1529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Local Variables: 1559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// mode:C++ 1569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// End: 157