diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/stdapis/stlportv5/stl/c_locale.h
--- a/epoc32/include/stdapis/stlportv5/stl/c_locale.h	Wed Mar 31 12:27:01 2010 +0100
+++ b/epoc32/include/stdapis/stlportv5/stl/c_locale.h	Wed Mar 31 12:33:34 2010 +0100
@@ -1,120 +1,105 @@
 /*
- * © Portions copyright (c) 2006-2007 Nokia Corporation.  All rights reserved.
+ * Portions Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
  *
  * Copyright (c) 1999
  * Silicon Graphics Computer Systems, Inc.
  *
- * Copyright (c) 1999 
+ * 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 
+ * 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_C_LOCALE_H
-# define _STLP_C_LOCALE_H
+#define _STLP_C_LOCALE_H
 
 /*
- * Implementation dependent definitions
+ * Implementation dependent definitions.
+ * Beware: This header is not a purely internal header, it is also included
+ * from the outside world when building the STLport library. So this header
+ * should not reference internal headers (stlport/stl/_*.h) directly.
  */
-#ifdef __cplusplus
-#  include <stl/_config.h>
-#endif
-
-#if defined(__sgi) 
-# if defined(ROOT_65) /* IRIX 6.5.x */
-#  include <sgidefs.h>
-#  include <standards.h>
-#  include <wchar.h>
-#  include <ctype.h>
-
-# else
-                  /* IRIX pre-6.5 */
-#  include <sgidefs.h>
-#  include <standards.h>
-
-#  if !defined(_SIZE_T) && !defined(_SIZE_T_)
-#   define _SIZE_T
-#    if (_MIPS_SZLONG == 32)
-typedef unsigned int    size_t;
+#if defined (__sgi)
+#  if defined (ROOT_65) /* IRIX 6.5.x */
+#    include <sgidefs.h>
+#    include <standards.h>
+#    include <wchar.h>
+#    include <ctype.h>
+#  else /* IRIX pre-6.5 */
+#    include <sgidefs.h>
+#    include <standards.h>
+#    if !defined(_SIZE_T) && !defined(_SIZE_T_)
+#      define _SIZE_T
+#      if (_MIPS_SZLONG == 32)
+typedef unsigned int size_t;
+#      endif
+#      if (_MIPS_SZLONG == 64)
+typedef unsigned long size_t;
+#      endif
 #    endif
-#    if (_MIPS_SZLONG == 64)
-typedef unsigned long   size_t;
-#    endif
-#   endif
-
-#   ifndef _WCHAR_T
-#    define _WCHAR_T
-#     if (_MIPS_SZLONG == 32)
+#    if !defined (_WCHAR_T)
+#      define _WCHAR_T
+#      if (_MIPS_SZLONG == 32)
 typedef long wchar_t;
-#     endif
-#     if (_MIPS_SZLONG == 64)
+#      endif
+#      if (_MIPS_SZLONG == 64)
 typedef __int32_t wchar_t;
-#     endif
+#      endif
 #    endif /* _WCHAR_T */
-
-#    ifndef _WINT_T
-#     define _WINT_T
-#     if (_MIPS_SZLONG == 32)
-        typedef long    wint_t;
-#     endif
-#     if (_MIPS_SZLONG == 64)
-        typedef __int32_t wint_t;
-#     endif
+#    if !defined (_WINT_T)
+#      define _WINT_T
+#      if (_MIPS_SZLONG == 32)
+typedef long wint_t;
+#      endif
+#      if (_MIPS_SZLONG == 64)
+typedef __int32_t wint_t;
+#      endif
 #    endif /* _WINT_T */
-
-#    ifndef _MBSTATE_T
-#    define _MBSTATE_T
-#    ifdef _MSC_VER
-		typedef int		mbstate_t;
-#    else
-        typedef char    mbstate_t;
-#    endif
+#    if !defined (_MBSTATE_T)
+#      define _MBSTATE_T
+/* _MSC_VER check is here for historical reason and seems wrong as it is the macro defined
+ * by Microsoft compilers to give their version and we are currently in a SGI platform scope.
+ * However _MSC_VER might also be a SGI compiler macro so we keep it this way.*/
+#      if defined (_MSC_VER)
+typedef int mbstate_t;
+#      else
+typedef char mbstate_t;
+#      endif
 #    endif /* _MBSTATE_T */
-
-#   endif /* ROOT65 */ 
-
-#  else /* __sgi */
-
-# ifdef __cplusplus
-# ifndef _STLP_CSTDDEF
-#  include <cstddef>
-# endif
-# ifndef _STLP_CWCHAR_H
-#  include <stl/_cwchar.h>
-# endif
-# ifndef _STLP_CCTYPE
-#  include <cctype>
-# endif
-# else
+#  endif /* ROOT65 */
+#else /* __sgi */
 #  include <stddef.h>
 #  include <wchar.h>
 #  include <ctype.h>
-# endif
-
 #endif /* __sgi */
 
 /*
  * GENERAL FRAMEWORK
  */
 
+/*
+ * Opaque types, implementation (if there is one) depends
+ * on platform locale API.
+ */
 struct _Locale_ctype;
 struct _Locale_numeric;
 struct _Locale_time;
 struct _Locale_collate;
 struct _Locale_monetary;
 struct _Locale_messages;
+struct _Locale_name_hint;
 
 /*
-  Bitmask macros.  
+  Bitmask macros.
 */
 
 /*
@@ -123,29 +108,29 @@
 
 /* Internal bitmask macros, os-specific. */
 
-#if defined(__sgi)              /* IRIX */
+#if defined (__sgi)              /* IRIX */
 
-#define _Locale_S      0x00000008      /* Spacing character */
-#define _Locale_A      0x00004000      /* Alphabetical characters only */
-#define _Locale_B      0x00000040      /* Obsolete: was space char only */
-#define _Locale_PR     0x00008000      /* Printable characters only */
-#define _Locale_G      0x40000000      /* Graphic characters only */
-#define _Locale_BL     0x80000000      /* The blank character class */
+#  define _Locale_S      0x00000008      /* Spacing character */
+#  define _Locale_A      0x00004000      /* Alphabetical characters only */
+#  define _Locale_B      0x00000040      /* Obsolete: was space char only */
+#  define _Locale_PR     0x00008000      /* Printable characters only */
+#  define _Locale_G      0x40000000      /* Graphic characters only */
+#  define _Locale_BL     0x80000000      /* The blank character class */
 
 /* Public bitmask macros, must be defined for every OS. These values, of
  * course, are specific to IRIX. */
 
-#define _Locale_CNTRL  0x00000020      /* Control character */
-#define _Locale_UPPER  0x00000001      /* Upper case */
-#define _Locale_LOWER  0x00000002      /* Lower case */
-#define _Locale_DIGIT  0x00000004      /* Numeral (digit) */
-#define _Locale_XDIGIT 0x00000080      /* heXadecimal digit */
-#define _Locale_PUNCT  0x00000010      /* Punctuation */
-#define _Locale_SPACE  (_Locale_S | _Locale_BL)
-#define _Locale_PRINT  (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \
+#  define _Locale_CNTRL  0x00000020      /* Control character */
+#  define _Locale_UPPER  0x00000001      /* Upper case */
+#  define _Locale_LOWER  0x00000002      /* Lower case */
+#  define _Locale_DIGIT  0x00000004      /* Numeral (digit) */
+#  define _Locale_XDIGIT 0x00000080      /* heXadecimal digit */
+#  define _Locale_PUNCT  0x00000010      /* Punctuation */
+#  define _Locale_SPACE  (_Locale_S | _Locale_BL)
+#  define _Locale_PRINT  (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \
                         _Locale_DIGIT | _Locale_A | _Locale_XDIGIT | \
                         _Locale_PR)
-#define _Locale_ALPHA  _Locale_A
+#  define _Locale_ALPHA  _Locale_A
 
 /*
 * All of these except for graph and blank are from the C standard;
@@ -156,114 +141,114 @@
 #endif /* IRIX */
 
 
-#if defined( __Lynx__ )
- /* azov: On Lynx isalpha defined as (_U | _L), which gives us a mask 
-  * unusable in ctype_table. So we have to redefine it and use hard-coded 
+#if defined (__Lynx__)
+ /* azov: On Lynx isalpha defined as (_U | _L), which gives us a mask
+  * unusable in ctype_table. So we have to redefine it and use hard-coded
   * numbers (to avoid potential clashes if system headers change).
   *
-  * P.S. Actually, I see no reason in using platform-specific masks - 
+  * P.S. Actually, I see no reason in using platform-specific masks -
   * having just one set of masks for all platforms should work just as
-  * well - we only use them internally and they don't have to be equal 
+  * well - we only use them internally and they don't have to be equal
   * to whatever defined in local ctype.h
   *
-  */ 
-#   define _Locale_CNTRL  040     /* _C, Control character */
-#   define _Locale_UPPER  01      /* _U, Upper case */
-#   define _Locale_LOWER  02      /* _L, Lower case */
-#   define _Locale_DIGIT  04      /* _N, Numeral (digit) */
-#   define _Locale_XDIGIT 0200    /* _X, heXadecimal digit */
-#   define _Locale_PUNCT  020     /* _P, Punctuation */
-#   define _Locale_SPACE  010     /* _S, Spacing */
-#   define _Locale_ALPHA  040000  /* none, Alphanumerical */
-#   define _Locale_PRINT  (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \
-                           _Locale_DIGIT | _Locale_ALPHA | _Locale_XDIGIT |\
-                           _Locale_SPACE ) /* Printable */
-# endif /* __Lynx__ */
+  */
+#  define _Locale_CNTRL  040     /* _C, Control character */
+#  define _Locale_UPPER  01      /* _U, Upper case */
+#  define _Locale_LOWER  02      /* _L, Lower case */
+#  define _Locale_DIGIT  04      /* _N, Numeral (digit) */
+#  define _Locale_XDIGIT 0200    /* _X, heXadecimal digit */
+#  define _Locale_PUNCT  020     /* _P, Punctuation */
+#  define _Locale_SPACE  010     /* _S, Spacing */
+#  define _Locale_ALPHA  040000  /* none, Alphanumerical */
+#  define _Locale_PRINT  (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \
+                          _Locale_DIGIT | _Locale_ALPHA | _Locale_XDIGIT |\
+                          _Locale_SPACE ) /* Printable */
+#endif /* __Lynx__ */
 
-#if defined(__GNUC__) || defined (__BORLANDC__) || defined (__COMO__)
+#if defined (__GNUC__) || defined (__BORLANDC__) || defined (__COMO__)
 
-# if defined (__CYGWIN__)
+#  if defined (__CYGWIN__)
 
-#  define _Locale_CNTRL  040
-#  define _Locale_UPPER  02
-#  define _Locale_LOWER  01
-#  define _Locale_DIGIT  04
-#  define _Locale_XDIGIT ( 0100 | _Locale_DIGIT )
-#  define _Locale_PUNCT  020
-#  define _Locale_SPACE  010
-#  define _Locale_ALPHA  (_Locale_UPPER | _Locale_LOWER)
-#  define _Locale_PRINT  (_Locale_ALPHA | _Locale_DIGIT | _Locale_PUNCT | 0200 )
+#    define _Locale_CNTRL  040
+#    define _Locale_UPPER  02
+#    define _Locale_LOWER  01
+#    define _Locale_DIGIT  04
+#    define _Locale_XDIGIT ( 0100 | _Locale_DIGIT )
+#    define _Locale_PUNCT  020
+#    define _Locale_SPACE  010
+#    define _Locale_ALPHA  0200
+#    define _Locale_PRINT  (_Locale_ALPHA | _Locale_DIGIT | _Locale_PUNCT | 0400 )
 
-# elif defined (__FreeBSD__)
+#  elif defined (__FreeBSD__) || ( defined (__APPLE__) && defined (__GNUC__) && (__GNUC__ > 3) )
 
-# define _Locale_CNTRL _CTYPE_C
-# define _Locale_UPPER _CTYPE_U
-# define _Locale_LOWER _CTYPE_L
-# define _Locale_DIGIT _CTYPE_D
-# define _Locale_XDIGIT _CTYPE_X
-# define _Locale_PUNCT _CTYPE_P
-# define _Locale_SPACE _CTYPE_S
-# define _Locale_PRINT _CTYPE_R
-# define _Locale_ALPHA _CTYPE_A
+#    define _Locale_CNTRL _CTYPE_C
+#    define _Locale_UPPER _CTYPE_U
+#    define _Locale_LOWER _CTYPE_L
+#    define _Locale_DIGIT _CTYPE_D
+#    define _Locale_XDIGIT _CTYPE_X
+#    define _Locale_PUNCT _CTYPE_P
+#    define _Locale_SPACE _CTYPE_S
+#    define _Locale_PRINT _CTYPE_R
+#    define _Locale_ALPHA _CTYPE_A
 
-# elif defined (__NetBSD__) || defined (__amigaos__)
- 
-#  define _Locale_CNTRL _C
-#  define _Locale_UPPER _U
-#  define _Locale_LOWER _L
-#  define _Locale_DIGIT _N
-#  define _Locale_XDIGIT (_N|_X)
-#  define _Locale_PUNCT _P
-#  define _Locale_SPACE _S
-#  define _Locale_PRINT (_P|_U|_L|_N|_B)
-#  define _Locale_ALPHA (_U|_L)
-# elif defined(__EMX__) /* OS/2 with emx runtime */
-#  define _Locale_CNTRL _CNTRL
-#  define _Locale_UPPER _UPPER
-#  define _Locale_LOWER _LOWER
-#  define _Locale_DIGIT _DIGIT
-#  define _Locale_XDIGIT _XDIGIT
-#  define _Locale_PUNCT _PUNCT
-#  define _Locale_SPACE _SPACE
-#  define _Locale_PRINT _PRINT
-#  define _Locale_ALPHA (_UPPER|_LOWER)
+#  elif defined (__NetBSD__) || defined (__OpenBSD__) || defined (__amigaos__)
 
-# elif defined(_STLP_USE_GLIBC) /* linux, using the gnu compiler */
+#    define _Locale_CNTRL _C
+#    define _Locale_UPPER _U
+#    define _Locale_LOWER _L
+#    define _Locale_DIGIT _N
+#    define _Locale_XDIGIT (_N|_X)
+#    define _Locale_PUNCT _P
+#    define _Locale_SPACE _S
+#    define _Locale_PRINT (_P|_U|_L|_N|_B)
+#    define _Locale_ALPHA (_U|_L)
+#  elif defined (__EMX__) /* OS/2 with emx runtime */
+#    define _Locale_CNTRL _CNTRL
+#    define _Locale_UPPER _UPPER
+#    define _Locale_LOWER _LOWER
+#    define _Locale_DIGIT _DIGIT
+#    define _Locale_XDIGIT _XDIGIT
+#    define _Locale_PUNCT _PUNCT
+#    define _Locale_SPACE _SPACE
+#    define _Locale_PRINT _PRINT
+#    define _Locale_ALPHA (_UPPER|_LOWER)
+
+#  elif defined (_STLP_USE_GLIBC) /* linux, using the gnu compiler */
 
 /* This section uses macros defined in the gnu libc ctype.h header */
 
-#  define _Locale_CNTRL  _IScntrl
-#  define _Locale_UPPER  _ISupper
-#  define _Locale_LOWER  _ISlower
-#  define _Locale_DIGIT  _ISdigit
-#  define _Locale_XDIGIT _ISxdigit
-#  define _Locale_PUNCT  _ISpunct
-#  define _Locale_SPACE  _ISspace
-#  define _Locale_PRINT  _ISprint
-#  define _Locale_ALPHA  _ISalpha
+#    define _Locale_CNTRL  _IScntrl
+#    define _Locale_UPPER  _ISupper
+#    define _Locale_LOWER  _ISlower
+#    define _Locale_DIGIT  _ISdigit
+#    define _Locale_XDIGIT _ISxdigit
+#    define _Locale_PUNCT  _ISpunct
+#    define _Locale_SPACE  _ISspace
+#    define _Locale_PRINT  _ISprint
+#    define _Locale_ALPHA  _ISalpha
 
 #  endif /* GLIBC */
 
 #endif /* gnu */
 
-#if ( defined(__sun) && defined (__SVR4) ) \
-    || (defined (__digital__) && defined (__unix__)) \
-    || defined(_AIX)
+#if (defined (__sun) && defined (__SVR4)) || \
+    (defined (__digital__) && defined (__unix__)) || \
+     defined (_AIX)
 /* fbp : condition from AT&T code*/
-#if !(defined(__XPG4_CHAR_CLASS__) || defined(_XPG4_2) || \
-    (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 == 4))) && ! defined (_ISCNTRL)
+#  if !(defined (__XPG4_CHAR_CLASS__) || defined (_XPG4_2) || \
+       (defined (_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 == 4))) && ! defined (_ISCNTRL)
   /* fbp : on 2.5.1, the defines are different ;( */
-  // # if ( defined (__sun) && defined (__SVR4) && ! defined (_ISCNTRL) )
-#   define _ISCNTRL _C
-#   define _ISUPPER _U
-#   define _ISLOWER _L
-#   define _ISDIGIT _N
-#   define _ISXDIGIT _X
-#   define _ISPUNCT _P
-#   define _ISSPACE _S
-#   define _ISPRINT (_P | _U | _L | _N | _B)
-#   define _ISALPHA (_U | _L)
-#  endif 
+  /* # if ( defined (__sun) && defined (__SVR4) && ! defined (_ISCNTRL) ) */
+#    define _ISCNTRL _C
+#    define _ISUPPER _U
+#    define _ISLOWER _L
+#    define _ISDIGIT _N
+#    define _ISXDIGIT _X
+#    define _ISPUNCT _P
+#    define _ISSPACE _S
+#    define _ISPRINT (_P | _U | _L | _N | _B)
+#    define _ISALPHA (_U | _L)
+#  endif
 
 #  define _Locale_CNTRL  _ISCNTRL
 #  define _Locale_UPPER  _ISUPPER
@@ -284,7 +269,16 @@
 # define _Locale_SPACE _CTYPE_S
 # define _Locale_PRINT _CTYPE_R
 # define _Locale_ALPHA _CTYPE_A
-
+#elif defined (__MWERKS__) && defined (N_PLAT_NLM)
+#  define _Locale_CNTRL  _CNTRL_
+#  define _Locale_UPPER  _UPPER_
+#  define _Locale_LOWER  _LOWER_
+#  define _Locale_DIGIT  _DIGIT_
+#  define _Locale_XDIGIT _XDIGIT_
+#  define _Locale_PUNCT  _PUNCT_
+#  define _Locale_SPACE  _SPACE_
+#  define _Locale_PRINT  (_PUNCT_|_UPPER_|_LOWER_|_DIGIT_|_BLANK_)
+#  define _Locale_ALPHA  (_UPPER_|_LOWER_)
 #elif defined (__MWERKS__)
 #  define _Locale_CNTRL  __control_char
 #  define _Locale_UPPER  __upper_case
@@ -305,7 +299,7 @@
 #  define _Locale_SPACE  _IS_SP
 #  define _Locale_PRINT  (_IS_SP|_IS_PUN|_IS_UPP|_IS_LOW|_IS_DIG)
 #  define _Locale_ALPHA  _IS_ALPHA
-#elif defined (_MSC_VER) || defined (__MINGW32__)
+#elif defined (_STLP_MSVC_LIB) || defined (__MINGW32__)
 #  define _Locale_CNTRL  _CONTROL
 #  define _Locale_UPPER  _UPPER
 #  define _Locale_LOWER  _LOWER
@@ -314,8 +308,7 @@
 #  define _Locale_PUNCT  _PUNCT
 #  define _Locale_SPACE  _SPACE
 #  define _Locale_PRINT  (_ALPHA | _DIGIT | _BLANK | _PUNCT)
-// is this one has to be so complex ?  
-#  define _Locale_ALPHA  ( _ALPHA & ~ (_UPPER | _LOWER )) 
+#  define _Locale_ALPHA  ( _ALPHA & ~ (_UPPER | _LOWER ))
 #elif defined (__DMC__)
 #  define _Locale_CNTRL  _CONTROL
 #  define _Locale_UPPER  _UPPER
@@ -325,8 +318,8 @@
 #  define _Locale_PUNCT  _PUNCT
 #  define _Locale_SPACE  _SPACE
 #  define _Locale_PRINT  (_UPPER | _LOWER | _DIGIT | _PUNCT | _SPACE)
-#  define _Locale_ALPHA  _ALPHA
-#elif defined(__MRC__) || defined(__SC__)		//*TY 02/24/2000 - added support for MPW
+#  define _Locale_ALPHA  _ALPHA & ~(_UPPER | _LOWER)
+#elif defined (__MRC__) || defined (__SC__)    /* *TY 02/24/2000 - added support for MPW */
 #  define _Locale_CNTRL  _CTL
 #  define _Locale_UPPER  _UPP
 #  define _Locale_LOWER  _LOW
@@ -336,7 +329,7 @@
 #  define _Locale_SPACE  _BLA
 #  define _Locale_PRINT  (_UPP | _LOW | _DIG | _PUN | _BLA)
 #  define _Locale_ALPHA  (_UPP | _LOW)
-#elif defined(__MLCCPP__)
+#elif defined (__MLCCPP__)
 #  define _Locale_CNTRL    1
 #  define _Locale_UPPER    2
 #  define _Locale_LOWER    4
@@ -346,34 +339,30 @@
 #  define _Locale_SPACE   64
 #  define _Locale_PRINT  128
 #  define _Locale_ALPHA  256
-
-# elif defined (__GNUC__) && defined (__APPLE__)
- 
-# define _Locale_CNTRL _C
-# define _Locale_UPPER _U
-# define _Locale_LOWER _L
-# define _Locale_DIGIT _D
-# define _Locale_XDIGIT _X
-# define _Locale_PUNCT _P
-# define _Locale_SPACE _S
-# define _Locale_PRINT _R
-# define _Locale_ALPHA _A
-
-# elif defined (__hpux) || defined (__osf__)
- 
-#   if defined(__HP_aCC) && !defined(_INCLUDE_HPUX_SOURCE)
-#     define _ISALPHA      0x001
-#     define _ISALNUM      0x002
-#     define _ISBLANK      0x004
-#     define _ISCNTRL      0x008
-#     define _ISDIGIT      0x010
-#     define _ISGRAPH      0x020
-#     define _ISLOWER      0x040
-#     define _ISPRINT      0x080
-#     define _ISPUNCT      0x100
-#     define _ISSPACE      0x200
-#     define _ISUPPER      0x400
-#     define _ISXDIGIT     0x800
+#elif defined (__GNUC__) && (__GNUC__ == 3) && defined (__APPLE__)
+#  define _Locale_CNTRL _C
+#  define _Locale_UPPER _U
+#  define _Locale_LOWER _L
+#  define _Locale_DIGIT _D
+#  define _Locale_XDIGIT _X
+#  define _Locale_PUNCT _P
+#  define _Locale_SPACE _S
+#  define _Locale_PRINT _R
+#  define _Locale_ALPHA _A
+#elif defined (__hpux) || defined (__osf__)
+#  if defined (__HP_aCC) && !defined (_INCLUDE_HPUX_SOURCE)
+#    define _ISALPHA      0x001
+#    define _ISALNUM      0x002
+#    define _ISBLANK      0x004
+#    define _ISCNTRL      0x008
+#    define _ISDIGIT      0x010
+#    define _ISGRAPH      0x020
+#    define _ISLOWER      0x040
+#    define _ISPRINT      0x080
+#    define _ISPUNCT      0x100
+#    define _ISSPACE      0x200
+#    define _ISUPPER      0x400
+#    define _ISXDIGIT     0x800
 #  endif
 #  define _Locale_CNTRL  _ISCNTRL
 #  define _Locale_UPPER  _ISUPPER
@@ -384,7 +373,7 @@
 #  define _Locale_SPACE  _ISSPACE
 #  define _Locale_PRINT  _ISPRINT
 #  define _Locale_ALPHA  _ISALPHA
-# elif defined (__MVS__) || defined(__OS400__)
+#elif defined (__MVS__) || defined (__OS400__)
 #  define _Locale_CNTRL __ISCNTRL
 #  define _Locale_UPPER __ISUPPER
 #  define _Locale_LOWER __ISLOWER
@@ -394,16 +383,16 @@
 #  define _Locale_SPACE __ISSPACE
 #  define _Locale_PRINT __ISPRINT
 #  define _Locale_ALPHA __ISALPHA
-# elif defined (__QNXNTO__)  || defined (__WATCOMC__)
-# define _Locale_CNTRL _CNTRL
-# define _Locale_UPPER _UPPER
-# define _Locale_LOWER _LOWER
-# define _Locale_DIGIT _DIGIT
-# define _Locale_XDIGIT _XDIGT
-# define _Locale_PUNCT _PUNCT
-# define _Locale_SPACE _SPACE
-# define _Locale_PRINT _PRINT
-# define _Locale_ALPHA (_UPPER | _LOWER)
+#elif defined (__QNXNTO__)  || defined (__WATCOMC__)
+#  define _Locale_CNTRL _CNTRL
+#  define _Locale_UPPER _UPPER
+#  define _Locale_LOWER _LOWER
+#  define _Locale_DIGIT _DIGIT
+#  define _Locale_XDIGIT _XDIGT
+#  define _Locale_PUNCT _PUNCT
+#  define _Locale_SPACE _SPACE
+#  define _Locale_PRINT _PRINT
+#  define _Locale_ALPHA (_UPPER | _LOWER)
 #elif defined (__DJGPP)
 #  define _Locale_CNTRL  __dj_ISCNTRL
 #  define _Locale_UPPER  __dj_ISUPPER
@@ -444,16 +433,13 @@
 #  define _Locale_SPACE  _SPACE
 #  define _Locale_PRINT  _PRINT
 #  define _Locale_ALPHA  _ALPHA
-#elif defined (_STLP_VXWORKS_TORNADO)
-#define _Locale_UPPER _C_UPPER   /* 0x01 */
-#define _Locale_LOWER _C_LOWER /* 0x02 */
-#define _Locale_DIGIT  _C_NUMBER   /* 0x04 */
-#define _Locale_SPACE  _C_WHITE_SPACE   /* 0x08 */
-#define _Locale_PUNCT _C_PUNCT   /* 0x10 */
-#define _Locale_CNTRL _C_CONTROL   /* 0x20 */
-#define _Locale_XDIGIT _C_HEX_NUMBER   /* 0x40 */
-#define _Locale_PRINT  (_C_B | _C_UPPER |  _C_LOWER | _C_NUMBER | _C_PUNCT)
-#define _Locale_ALPHA (_C_UPPER |  _C_LOWER) 
 #endif
 
-# endif /* _STLP_C_LOCALE_H */
+/* We arbitrarily consider _Locale_CNTRL macro to check locale facet numeric
+ * identifier has been defined for the platform/compiler:
+ */
+#if !defined (_Locale_CNTRL)
+#  error Unable to find your platform locale facets definitions, please grant them.
+#endif
+
+#endif /* _STLP_C_LOCALE_H */