epoc32/include/tools/stlport/stl/c_locale.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
/*
williamr@4
     2
 * Copyright (c) 1999
williamr@4
     3
 * Silicon Graphics Computer Systems, Inc.
williamr@4
     4
 *
williamr@4
     5
 * Copyright (c) 1999
williamr@4
     6
 * Boris Fomitchev
williamr@4
     7
 *
williamr@4
     8
 * This material is provided "as is", with absolutely no warranty expressed
williamr@4
     9
 * or implied. Any use is at your own risk.
williamr@4
    10
 *
williamr@4
    11
 * Permission to use or copy this software for any purpose is hereby granted
williamr@4
    12
 * without fee, provided the above notices are retained on all copies.
williamr@4
    13
 * Permission to modify the code and to distribute modified code is granted,
williamr@4
    14
 * provided the above notices are retained, and a notice that the code was
williamr@4
    15
 * modified is included with the above copyright notice.
williamr@4
    16
 *
williamr@4
    17
 */
williamr@4
    18
williamr@4
    19
williamr@4
    20
#ifndef _STLP_C_LOCALE_H
williamr@4
    21
#define _STLP_C_LOCALE_H
williamr@4
    22
williamr@4
    23
/*
williamr@4
    24
 * Implementation dependent definitions.
williamr@4
    25
 * Beware: This header is not a purely internal header, it is also included
williamr@4
    26
 * from the outside world when building the STLport library. So this header
williamr@4
    27
 * should not reference internal headers (stlport/stl/_*.h) directly.
williamr@4
    28
 */
williamr@4
    29
#if defined (__sgi)
williamr@4
    30
#  if defined (ROOT_65) /* IRIX 6.5.x */
williamr@4
    31
#    include <sgidefs.h>
williamr@4
    32
#    include <standards.h>
williamr@4
    33
#    include <wchar.h>
williamr@4
    34
#    include <ctype.h>
williamr@4
    35
#  else /* IRIX pre-6.5 */
williamr@4
    36
#    include <sgidefs.h>
williamr@4
    37
#    include <standards.h>
williamr@4
    38
#    if !defined(_SIZE_T) && !defined(_SIZE_T_)
williamr@4
    39
#      define _SIZE_T
williamr@4
    40
#      if (_MIPS_SZLONG == 32)
williamr@4
    41
typedef unsigned int size_t;
williamr@4
    42
#      endif
williamr@4
    43
#      if (_MIPS_SZLONG == 64)
williamr@4
    44
typedef unsigned long size_t;
williamr@4
    45
#      endif
williamr@4
    46
#    endif
williamr@4
    47
#    if !defined (_WCHAR_T)
williamr@4
    48
#      define _WCHAR_T
williamr@4
    49
#      if (_MIPS_SZLONG == 32)
williamr@4
    50
typedef long wchar_t;
williamr@4
    51
#      endif
williamr@4
    52
#      if (_MIPS_SZLONG == 64)
williamr@4
    53
typedef __int32_t wchar_t;
williamr@4
    54
#      endif
williamr@4
    55
#    endif /* _WCHAR_T */
williamr@4
    56
#    if !defined (_WINT_T)
williamr@4
    57
#      define _WINT_T
williamr@4
    58
#      if (_MIPS_SZLONG == 32)
williamr@4
    59
typedef long wint_t;
williamr@4
    60
#      endif
williamr@4
    61
#      if (_MIPS_SZLONG == 64)
williamr@4
    62
typedef __int32_t wint_t;
williamr@4
    63
#      endif
williamr@4
    64
#    endif /* _WINT_T */
williamr@4
    65
#    if !defined (_MBSTATE_T)
williamr@4
    66
#      define _MBSTATE_T
williamr@4
    67
/* _MSC_VER check is here for historical reason and seems wrong as it is the macro defined
williamr@4
    68
 * by Microsoft compilers to give their version and we are currently in a SGI platform scope.
williamr@4
    69
 * However _MSC_VER might also be a SGI compiler macro so we keep it this way.*/
williamr@4
    70
#      if defined (_MSC_VER)
williamr@4
    71
typedef int mbstate_t;
williamr@4
    72
#      else
williamr@4
    73
typedef char mbstate_t;
williamr@4
    74
#      endif
williamr@4
    75
#    endif /* _MBSTATE_T */
williamr@4
    76
#  endif /* ROOT65 */
williamr@4
    77
#else /* __sgi */
williamr@4
    78
#  include <stddef.h>
williamr@4
    79
#  include <wchar.h>
williamr@4
    80
#  include <ctype.h>
williamr@4
    81
#endif /* __sgi */
williamr@4
    82
williamr@4
    83
/*
williamr@4
    84
 * GENERAL FRAMEWORK
williamr@4
    85
 */
williamr@4
    86
williamr@4
    87
/*
williamr@4
    88
 * Opaque types, implementation (if there is one) depends
williamr@4
    89
 * on platform locale API.
williamr@4
    90
 */
williamr@4
    91
struct _Locale_ctype;
williamr@4
    92
struct _Locale_numeric;
williamr@4
    93
struct _Locale_time;
williamr@4
    94
struct _Locale_collate;
williamr@4
    95
struct _Locale_monetary;
williamr@4
    96
struct _Locale_messages;
williamr@4
    97
struct _Locale_name_hint;
williamr@4
    98
williamr@4
    99
/*
williamr@4
   100
  Bitmask macros.
williamr@4
   101
*/
williamr@4
   102
williamr@4
   103
/*
williamr@4
   104
 * For narrow characters, we expose the lookup table interface.
williamr@4
   105
 */
williamr@4
   106
williamr@4
   107
/* Internal bitmask macros, os-specific. */
williamr@4
   108
williamr@4
   109
#if defined (__sgi)              /* IRIX */
williamr@4
   110
williamr@4
   111
#  define _Locale_S      0x00000008      /* Spacing character */
williamr@4
   112
#  define _Locale_A      0x00004000      /* Alphabetical characters only */
williamr@4
   113
#  define _Locale_B      0x00000040      /* Obsolete: was space char only */
williamr@4
   114
#  define _Locale_PR     0x00008000      /* Printable characters only */
williamr@4
   115
#  define _Locale_G      0x40000000      /* Graphic characters only */
williamr@4
   116
#  define _Locale_BL     0x80000000      /* The blank character class */
williamr@4
   117
williamr@4
   118
/* Public bitmask macros, must be defined for every OS. These values, of
williamr@4
   119
 * course, are specific to IRIX. */
williamr@4
   120
williamr@4
   121
#  define _Locale_CNTRL  0x00000020      /* Control character */
williamr@4
   122
#  define _Locale_UPPER  0x00000001      /* Upper case */
williamr@4
   123
#  define _Locale_LOWER  0x00000002      /* Lower case */
williamr@4
   124
#  define _Locale_DIGIT  0x00000004      /* Numeral (digit) */
williamr@4
   125
#  define _Locale_XDIGIT 0x00000080      /* heXadecimal digit */
williamr@4
   126
#  define _Locale_PUNCT  0x00000010      /* Punctuation */
williamr@4
   127
#  define _Locale_SPACE  (_Locale_S | _Locale_BL)
williamr@4
   128
#  define _Locale_PRINT  (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \
williamr@4
   129
                        _Locale_DIGIT | _Locale_A | _Locale_XDIGIT | \
williamr@4
   130
                        _Locale_PR)
williamr@4
   131
#  define _Locale_ALPHA  _Locale_A
williamr@4
   132
williamr@4
   133
/*
williamr@4
   134
* All of these except for graph and blank are from the C standard;
williamr@4
   135
* graph and blank are XPG4.  (graph in XPG4 doesn't mean quite the
williamr@4
   136
* same thing as graph in the C++ library)
williamr@4
   137
*/
williamr@4
   138
williamr@4
   139
#endif /* IRIX */
williamr@4
   140
williamr@4
   141
williamr@4
   142
#if defined (__Lynx__)
williamr@4
   143
 /* azov: On Lynx isalpha defined as (_U | _L), which gives us a mask
williamr@4
   144
  * unusable in ctype_table. So we have to redefine it and use hard-coded
williamr@4
   145
  * numbers (to avoid potential clashes if system headers change).
williamr@4
   146
  *
williamr@4
   147
  * P.S. Actually, I see no reason in using platform-specific masks -
williamr@4
   148
  * having just one set of masks for all platforms should work just as
williamr@4
   149
  * well - we only use them internally and they don't have to be equal
williamr@4
   150
  * to whatever defined in local ctype.h
williamr@4
   151
  *
williamr@4
   152
  */
williamr@4
   153
#  define _Locale_CNTRL  040     /* _C, Control character */
williamr@4
   154
#  define _Locale_UPPER  01      /* _U, Upper case */
williamr@4
   155
#  define _Locale_LOWER  02      /* _L, Lower case */
williamr@4
   156
#  define _Locale_DIGIT  04      /* _N, Numeral (digit) */
williamr@4
   157
#  define _Locale_XDIGIT 0200    /* _X, heXadecimal digit */
williamr@4
   158
#  define _Locale_PUNCT  020     /* _P, Punctuation */
williamr@4
   159
#  define _Locale_SPACE  010     /* _S, Spacing */
williamr@4
   160
#  define _Locale_ALPHA  040000  /* none, Alphanumerical */
williamr@4
   161
#  define _Locale_PRINT  (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \
williamr@4
   162
                          _Locale_DIGIT | _Locale_ALPHA | _Locale_XDIGIT |\
williamr@4
   163
                          _Locale_SPACE ) /* Printable */
williamr@4
   164
#endif /* __Lynx__ */
williamr@4
   165
williamr@4
   166
#if defined (__GNUC__) || defined (__BORLANDC__) || defined (__COMO__)
williamr@4
   167
williamr@4
   168
#  if defined (__CYGWIN__)
williamr@4
   169
williamr@4
   170
#    define _Locale_CNTRL  040
williamr@4
   171
#    define _Locale_UPPER  02
williamr@4
   172
#    define _Locale_LOWER  01
williamr@4
   173
#    define _Locale_DIGIT  04
williamr@4
   174
#    define _Locale_XDIGIT ( 0100 | _Locale_DIGIT )
williamr@4
   175
#    define _Locale_PUNCT  020
williamr@4
   176
#    define _Locale_SPACE  010
williamr@4
   177
#    define _Locale_ALPHA  0200
williamr@4
   178
#    define _Locale_PRINT  (_Locale_ALPHA | _Locale_DIGIT | _Locale_PUNCT | 0400 )
williamr@4
   179
williamr@4
   180
#  elif defined (__FreeBSD__) || ( defined (__APPLE__) && defined (__GNUC__) && (__GNUC__ > 3) )
williamr@4
   181
williamr@4
   182
#    define _Locale_CNTRL _CTYPE_C
williamr@4
   183
#    define _Locale_UPPER _CTYPE_U
williamr@4
   184
#    define _Locale_LOWER _CTYPE_L
williamr@4
   185
#    define _Locale_DIGIT _CTYPE_D
williamr@4
   186
#    define _Locale_XDIGIT _CTYPE_X
williamr@4
   187
#    define _Locale_PUNCT _CTYPE_P
williamr@4
   188
#    define _Locale_SPACE _CTYPE_S
williamr@4
   189
#    define _Locale_PRINT _CTYPE_R
williamr@4
   190
#    define _Locale_ALPHA _CTYPE_A
williamr@4
   191
williamr@4
   192
#  elif defined (__NetBSD__) || defined (__OpenBSD__) || defined (__amigaos__)
williamr@4
   193
williamr@4
   194
#    define _Locale_CNTRL _C
williamr@4
   195
#    define _Locale_UPPER _U
williamr@4
   196
#    define _Locale_LOWER _L
williamr@4
   197
#    define _Locale_DIGIT _N
williamr@4
   198
#    define _Locale_XDIGIT (_N|_X)
williamr@4
   199
#    define _Locale_PUNCT _P
williamr@4
   200
#    define _Locale_SPACE _S
williamr@4
   201
#    define _Locale_PRINT (_P|_U|_L|_N|_B)
williamr@4
   202
#    define _Locale_ALPHA (_U|_L)
williamr@4
   203
#  elif defined (__EMX__) /* OS/2 with emx runtime */
williamr@4
   204
#    define _Locale_CNTRL _CNTRL
williamr@4
   205
#    define _Locale_UPPER _UPPER
williamr@4
   206
#    define _Locale_LOWER _LOWER
williamr@4
   207
#    define _Locale_DIGIT _DIGIT
williamr@4
   208
#    define _Locale_XDIGIT _XDIGIT
williamr@4
   209
#    define _Locale_PUNCT _PUNCT
williamr@4
   210
#    define _Locale_SPACE _SPACE
williamr@4
   211
#    define _Locale_PRINT _PRINT
williamr@4
   212
#    define _Locale_ALPHA (_UPPER|_LOWER)
williamr@4
   213
williamr@4
   214
#  elif defined (_STLP_USE_GLIBC) /* linux, using the gnu compiler */
williamr@4
   215
williamr@4
   216
/* This section uses macros defined in the gnu libc ctype.h header */
williamr@4
   217
williamr@4
   218
#    define _Locale_CNTRL  _IScntrl
williamr@4
   219
#    define _Locale_UPPER  _ISupper
williamr@4
   220
#    define _Locale_LOWER  _ISlower
williamr@4
   221
#    define _Locale_DIGIT  _ISdigit
williamr@4
   222
#    define _Locale_XDIGIT _ISxdigit
williamr@4
   223
#    define _Locale_PUNCT  _ISpunct
williamr@4
   224
#    define _Locale_SPACE  _ISspace
williamr@4
   225
#    define _Locale_PRINT  _ISprint
williamr@4
   226
#    define _Locale_ALPHA  _ISalpha
williamr@4
   227
williamr@4
   228
#  endif /* GLIBC */
williamr@4
   229
williamr@4
   230
#endif /* gnu */
williamr@4
   231
williamr@4
   232
#if (defined (__sun) && defined (__SVR4)) || \
williamr@4
   233
    (defined (__digital__) && defined (__unix__)) || \
williamr@4
   234
     defined (_AIX)
williamr@4
   235
/* fbp : condition from AT&T code*/
williamr@4
   236
#  if !(defined (__XPG4_CHAR_CLASS__) || defined (_XPG4_2) || \
williamr@4
   237
       (defined (_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 == 4))) && ! defined (_ISCNTRL)
williamr@4
   238
  /* fbp : on 2.5.1, the defines are different ;( */
williamr@4
   239
  /* # if ( defined (__sun) && defined (__SVR4) && ! defined (_ISCNTRL) ) */
williamr@4
   240
#    define _ISCNTRL _C
williamr@4
   241
#    define _ISUPPER _U
williamr@4
   242
#    define _ISLOWER _L
williamr@4
   243
#    define _ISDIGIT _N
williamr@4
   244
#    define _ISXDIGIT _X
williamr@4
   245
#    define _ISPUNCT _P
williamr@4
   246
#    define _ISSPACE _S
williamr@4
   247
#    define _ISPRINT (_P | _U | _L | _N | _B)
williamr@4
   248
#    define _ISALPHA (_U | _L)
williamr@4
   249
#  endif
williamr@4
   250
williamr@4
   251
#  define _Locale_CNTRL  _ISCNTRL
williamr@4
   252
#  define _Locale_UPPER  _ISUPPER
williamr@4
   253
#  define _Locale_LOWER  _ISLOWER
williamr@4
   254
#  define _Locale_DIGIT  _ISDIGIT
williamr@4
   255
#  define _Locale_XDIGIT _ISXDIGIT
williamr@4
   256
#  define _Locale_PUNCT  _ISPUNCT
williamr@4
   257
#  define _Locale_SPACE  _ISSPACE
williamr@4
   258
#  define _Locale_PRINT  _ISPRINT
williamr@4
   259
#  define _Locale_ALPHA  _ISALPHA
williamr@4
   260
#elif defined (__MWERKS__) && defined (N_PLAT_NLM)
williamr@4
   261
#  define _Locale_CNTRL  _CNTRL_
williamr@4
   262
#  define _Locale_UPPER  _UPPER_
williamr@4
   263
#  define _Locale_LOWER  _LOWER_
williamr@4
   264
#  define _Locale_DIGIT  _DIGIT_
williamr@4
   265
#  define _Locale_XDIGIT _XDIGIT_
williamr@4
   266
#  define _Locale_PUNCT  _PUNCT_
williamr@4
   267
#  define _Locale_SPACE  _SPACE_
williamr@4
   268
#  define _Locale_PRINT  (_PUNCT_|_UPPER_|_LOWER_|_DIGIT_|_BLANK_)
williamr@4
   269
#  define _Locale_ALPHA  (_UPPER_|_LOWER_)
williamr@4
   270
#elif defined (__MWERKS__)
williamr@4
   271
#  define _Locale_CNTRL  __control_char
williamr@4
   272
#  define _Locale_UPPER  __upper_case
williamr@4
   273
#  define _Locale_LOWER  __lower_case
williamr@4
   274
#  define _Locale_DIGIT  __digit
williamr@4
   275
#  define _Locale_XDIGIT __hex_digit
williamr@4
   276
#  define _Locale_PUNCT  __punctuation
williamr@4
   277
#  define _Locale_SPACE  __space_char
williamr@4
   278
#  define _Locale_PRINT  __printable
williamr@4
   279
#  define _Locale_ALPHA  __alphanumeric
williamr@4
   280
#elif defined (__BORLANDC__)
williamr@4
   281
#  define _Locale_CNTRL  _IS_CTL
williamr@4
   282
#  define _Locale_UPPER  _IS_UPP
williamr@4
   283
#  define _Locale_LOWER  _IS_LOW
williamr@4
   284
#  define _Locale_DIGIT  _IS_DIG
williamr@4
   285
#  define _Locale_XDIGIT _IS_HEX
williamr@4
   286
#  define _Locale_PUNCT  _IS_PUN
williamr@4
   287
#  define _Locale_SPACE  _IS_SP
williamr@4
   288
#  define _Locale_PRINT  (_IS_SP|_IS_PUN|_IS_UPP|_IS_LOW|_IS_DIG)
williamr@4
   289
#  define _Locale_ALPHA  _IS_ALPHA
williamr@4
   290
#elif defined (_STLP_MSVC_LIB) || defined (__MINGW32__)
williamr@4
   291
#  define _Locale_CNTRL  _CONTROL
williamr@4
   292
#  define _Locale_UPPER  _UPPER
williamr@4
   293
#  define _Locale_LOWER  _LOWER
williamr@4
   294
#  define _Locale_DIGIT  _DIGIT
williamr@4
   295
#  define _Locale_XDIGIT _HEX
williamr@4
   296
#  define _Locale_PUNCT  _PUNCT
williamr@4
   297
#  define _Locale_SPACE  _SPACE
williamr@4
   298
#  define _Locale_PRINT  (_ALPHA | _DIGIT | _BLANK | _PUNCT)
williamr@4
   299
#  define _Locale_ALPHA  ( _ALPHA & ~ (_UPPER | _LOWER ))
williamr@4
   300
#elif defined (__DMC__)
williamr@4
   301
#  define _Locale_CNTRL  _CONTROL
williamr@4
   302
#  define _Locale_UPPER  _UPPER
williamr@4
   303
#  define _Locale_LOWER  _LOWER
williamr@4
   304
#  define _Locale_DIGIT  _DIGIT
williamr@4
   305
#  define _Locale_XDIGIT _HEX
williamr@4
   306
#  define _Locale_PUNCT  _PUNCT
williamr@4
   307
#  define _Locale_SPACE  _SPACE
williamr@4
   308
#  define _Locale_PRINT  (_UPPER | _LOWER | _DIGIT | _PUNCT | _SPACE)
williamr@4
   309
#  define _Locale_ALPHA  _ALPHA & ~(_UPPER | _LOWER)
williamr@4
   310
#elif defined (__MRC__) || defined (__SC__)    /* *TY 02/24/2000 - added support for MPW */
williamr@4
   311
#  define _Locale_CNTRL  _CTL
williamr@4
   312
#  define _Locale_UPPER  _UPP
williamr@4
   313
#  define _Locale_LOWER  _LOW
williamr@4
   314
#  define _Locale_DIGIT  _DIG
williamr@4
   315
#  define _Locale_XDIGIT _HEX
williamr@4
   316
#  define _Locale_PUNCT  _PUN
williamr@4
   317
#  define _Locale_SPACE  _BLA
williamr@4
   318
#  define _Locale_PRINT  (_UPP | _LOW | _DIG | _PUN | _BLA)
williamr@4
   319
#  define _Locale_ALPHA  (_UPP | _LOW)
williamr@4
   320
#elif defined (__MLCCPP__)
williamr@4
   321
#  define _Locale_CNTRL    1
williamr@4
   322
#  define _Locale_UPPER    2
williamr@4
   323
#  define _Locale_LOWER    4
williamr@4
   324
#  define _Locale_DIGIT    8
williamr@4
   325
#  define _Locale_XDIGIT  16
williamr@4
   326
#  define _Locale_PUNCT   32
williamr@4
   327
#  define _Locale_SPACE   64
williamr@4
   328
#  define _Locale_PRINT  128
williamr@4
   329
#  define _Locale_ALPHA  256
williamr@4
   330
#elif defined (__GNUC__) && (__GNUC__ == 3) && defined (__APPLE__)
williamr@4
   331
#  define _Locale_CNTRL _C
williamr@4
   332
#  define _Locale_UPPER _U
williamr@4
   333
#  define _Locale_LOWER _L
williamr@4
   334
#  define _Locale_DIGIT _D
williamr@4
   335
#  define _Locale_XDIGIT _X
williamr@4
   336
#  define _Locale_PUNCT _P
williamr@4
   337
#  define _Locale_SPACE _S
williamr@4
   338
#  define _Locale_PRINT _R
williamr@4
   339
#  define _Locale_ALPHA _A
williamr@4
   340
#elif defined (__hpux) || defined (__osf__)
williamr@4
   341
#  if defined (__HP_aCC) && !defined (_INCLUDE_HPUX_SOURCE)
williamr@4
   342
#    define _ISALPHA      0x001
williamr@4
   343
#    define _ISALNUM      0x002
williamr@4
   344
#    define _ISBLANK      0x004
williamr@4
   345
#    define _ISCNTRL      0x008
williamr@4
   346
#    define _ISDIGIT      0x010
williamr@4
   347
#    define _ISGRAPH      0x020
williamr@4
   348
#    define _ISLOWER      0x040
williamr@4
   349
#    define _ISPRINT      0x080
williamr@4
   350
#    define _ISPUNCT      0x100
williamr@4
   351
#    define _ISSPACE      0x200
williamr@4
   352
#    define _ISUPPER      0x400
williamr@4
   353
#    define _ISXDIGIT     0x800
williamr@4
   354
#  endif
williamr@4
   355
#  define _Locale_CNTRL  _ISCNTRL
williamr@4
   356
#  define _Locale_UPPER  _ISUPPER
williamr@4
   357
#  define _Locale_LOWER  _ISLOWER
williamr@4
   358
#  define _Locale_DIGIT  _ISDIGIT
williamr@4
   359
#  define _Locale_XDIGIT _ISXDIGIT
williamr@4
   360
#  define _Locale_PUNCT  _ISPUNCT
williamr@4
   361
#  define _Locale_SPACE  _ISSPACE
williamr@4
   362
#  define _Locale_PRINT  _ISPRINT
williamr@4
   363
#  define _Locale_ALPHA  _ISALPHA
williamr@4
   364
#elif defined (__MVS__) || defined (__OS400__)
williamr@4
   365
#  define _Locale_CNTRL __ISCNTRL
williamr@4
   366
#  define _Locale_UPPER __ISUPPER
williamr@4
   367
#  define _Locale_LOWER __ISLOWER
williamr@4
   368
#  define _Locale_DIGIT __ISDIGIT
williamr@4
   369
#  define _Locale_XDIGIT __ISXDIGIT
williamr@4
   370
#  define _Locale_PUNCT __ISPUNCT
williamr@4
   371
#  define _Locale_SPACE __ISSPACE
williamr@4
   372
#  define _Locale_PRINT __ISPRINT
williamr@4
   373
#  define _Locale_ALPHA __ISALPHA
williamr@4
   374
#elif defined (__QNXNTO__)  || defined (__WATCOMC__)
williamr@4
   375
#  define _Locale_CNTRL _CNTRL
williamr@4
   376
#  define _Locale_UPPER _UPPER
williamr@4
   377
#  define _Locale_LOWER _LOWER
williamr@4
   378
#  define _Locale_DIGIT _DIGIT
williamr@4
   379
#  define _Locale_XDIGIT _XDIGT
williamr@4
   380
#  define _Locale_PUNCT _PUNCT
williamr@4
   381
#  define _Locale_SPACE _SPACE
williamr@4
   382
#  define _Locale_PRINT _PRINT
williamr@4
   383
#  define _Locale_ALPHA (_UPPER | _LOWER)
williamr@4
   384
#elif defined (__DJGPP)
williamr@4
   385
#  define _Locale_CNTRL  __dj_ISCNTRL
williamr@4
   386
#  define _Locale_UPPER  __dj_ISUPPER
williamr@4
   387
#  define _Locale_LOWER  __dj_ISLOWER
williamr@4
   388
#  define _Locale_DIGIT  __dj_ISDIGIT
williamr@4
   389
#  define _Locale_XDIGIT __dj_ISXDIGIT
williamr@4
   390
#  define _Locale_PUNCT  __dj_ISPUNCT
williamr@4
   391
#  define _Locale_SPACE  __dj_ISSPACE
williamr@4
   392
#  define _Locale_PRINT  __dj_ISPRINT
williamr@4
   393
#  define _Locale_ALPHA  __dj_ISALPHA
williamr@4
   394
#elif defined (_STLP_SCO_OPENSERVER)
williamr@4
   395
#  define _Locale_CNTRL _C
williamr@4
   396
#  define _Locale_UPPER _U
williamr@4
   397
#  define _Locale_LOWER _L
williamr@4
   398
#  define _Locale_DIGIT _N
williamr@4
   399
#  define _Locale_XDIGIT _X
williamr@4
   400
#  define _Locale_PUNCT _P
williamr@4
   401
#  define _Locale_SPACE _S
williamr@4
   402
#  define _Locale_PRINT _R
williamr@4
   403
#  define _Locale_ALPHA _A
williamr@4
   404
#elif defined (__NCR_SVR)
williamr@4
   405
#  define _Locale_CNTRL _C
williamr@4
   406
#  define _Locale_UPPER _U
williamr@4
   407
#  define _Locale_LOWER _L
williamr@4
   408
#  define _Locale_DIGIT _N
williamr@4
   409
#  define _Locale_XDIGIT _X
williamr@4
   410
#  define _Locale_PUNCT _P
williamr@4
   411
#  define _Locale_SPACE _S
williamr@4
   412
#  define _Locale_PRINT (_P | _U | _L | _N | _B)
williamr@4
   413
#  define _Locale_ALPHA (_U | _L)
williamr@4
   414
#elif defined (_CRAY)
williamr@4
   415
#  define _Locale_CNTRL  _CNTRL
williamr@4
   416
#  define _Locale_UPPER  _UPPER
williamr@4
   417
#  define _Locale_LOWER  _LOWER
williamr@4
   418
#  define _Locale_DIGIT  _DIGIT
williamr@4
   419
#  define _Locale_XDIGIT _XDIGIT
williamr@4
   420
#  define _Locale_PUNCT  _PUNCT
williamr@4
   421
#  define _Locale_SPACE  _SPACE
williamr@4
   422
#  define _Locale_PRINT  _PRINT
williamr@4
   423
#  define _Locale_ALPHA  _ALPHA
williamr@4
   424
#endif
williamr@4
   425
williamr@4
   426
/* We arbitrarily consider _Locale_CNTRL macro to check locale facet numeric
williamr@4
   427
 * identifier has been defined for the platform/compiler:
williamr@4
   428
 */
williamr@4
   429
#if !defined (_Locale_CNTRL)
williamr@4
   430
#  error Unable to find your platform locale facets definitions, please grant them.
williamr@4
   431
#endif
williamr@4
   432
williamr@4
   433
#endif /* _STLP_C_LOCALE_H */