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