Print this page
    
2964 need POSIX 2008 locale object support (more C++ fixes)
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/head/locale.h
          +++ new/usr/src/head/locale.h
   1    1  /*
   2    2   * CDDL HEADER START
   3    3   *
   4    4   * The contents of this file are subject to the terms of the
   5    5   * Common Development and Distribution License, Version 1.0 only
   6    6   * (the "License").  You may not use this file except in compliance
   7    7   * with the License.
   8    8   *
   9    9   * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10   10   * or http://www.opensolaris.org/os/licensing.
  11   11   * See the License for the specific language governing permissions
  12   12   * and limitations under the License.
  13   13   *
  14   14   * When distributing Covered Code, include this CDDL HEADER in each
  15   15   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16   16   * If applicable, add the following below this CDDL HEADER, with the
  17   17   * fields enclosed by brackets "[]" replaced with your own identifying
  18   18   * information: Portions Copyright [yyyy] [name of copyright owner]
  19   19   *
  20   20   * CDDL HEADER END
  21   21   */
  22   22  /*
  23   23   * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  24   24   * Use is subject to license terms.
  25   25   */
  26   26  
  27   27  /*
  28   28   * Copyright 2013 Garrett D'Amore <garrett@damore.org>
  29   29   *
  30   30   * Portions of this file developed by Garrett D'Amore are licensed
  31   31   * under the terms of the Common Development and Distribution License (CDDL)
  32   32   * version 1.0 only.  The use of subsequent versions of the License are
  33   33   * is specifically prohibited unless those terms are not in conflict with
  34   34   * version 1.0 of the License.  You can find this license on-line at
  35   35   * http://www.illumos.org/license/CDDL
  36   36   */
  37   37  
  38   38  #ifndef _LOCALE_H
  39   39  #define _LOCALE_H
  40   40  
  41   41  #include <iso/locale_iso.h>
  42   42  
  43   43  #if (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
  44   44          defined(__EXTENSIONS__)
  45   45  #include <libintl.h>
  46   46  #endif
  47   47  
  48   48  /*
  49   49   * Allow global visibility for symbols defined in
  50   50   * C++ "std" namespace in <iso/locale_iso.h>.
  51   51   */
  52   52  #if __cplusplus >= 199711L
  53   53  using std::lconv;
  54   54  using std::setlocale;
  55   55  using std::localeconv;
  56   56  #endif
  57   57  
  58   58  #ifdef __cplusplus
  59   59  extern "C" {
  60   60  #endif
  61   61  
  62   62  #define _LastCategory   LC_MESSAGES     /* This must be last category */
  63   63  
  64   64  #define _ValidCategory(c) \
  65   65          (((int)(c) >= LC_CTYPE) && ((int)(c) <= _LastCategory) || \
  66   66          ((int)c == LC_ALL))
  67   67  
  68   68  
  69   69  #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
  70   70  
  71   71  /*
  72   72   * These were added in POSIX 2008 as part of the newlocale() specification.
  73   73   */
  
    | 
      ↓ open down ↓ | 
    73 lines elided | 
    
      ↑ open up ↑ | 
  
  74   74  #define LC_CTYPE_MASK           (1 << LC_CTYPE)
  75   75  #define LC_NUMERIC_MASK         (1 << LC_NUMERIC)
  76   76  #define LC_TIME_MASK            (1 << LC_TIME)
  77   77  #define LC_COLLATE_MASK         (1 << LC_COLLATE)
  78   78  #define LC_MONETARY_MASK        (1 << LC_MONETARY)
  79   79  #define LC_MESSAGES_MASK        (1 << LC_MESSAGES)
  80   80  #define LC_ALL_MASK             (0x3f)
  81   81  
  82   82  #ifndef _LOCALE_T
  83   83  #define _LOCALE_T
  84      -typedef struct locale *locale_t;
       84 +typedef struct _locale *locale_t;
  85   85  #endif
  86   86  
  87   87  #if     defined(__STDC__)
  88   88  extern locale_t duplocale(locale_t);
  89   89  extern void     freelocale(locale_t);
  90   90  extern locale_t newlocale(int, const char *, locale_t);
  91   91  extern locale_t uselocale(locale_t);
  92   92  #else   /* __STDC__ */
  93   93  extern locale_t duplocale();
  94   94  extern void     freelocale();
  95   95  extern locale_t newlocale();
  96   96  extern locale_t uselocale();
  97   97  #endif  /* __STDC__ */
  98   98  
  99   99  #define LC_GLOBAL_LOCALE        (__global_locale())
 100  100  extern locale_t                 __global_locale(void);
 101  101  
 102  102  #endif  /* defined(_XPG7) || !defined(_STRICT_SYMBOLS) */
 103  103  
 104  104  #ifdef  __cplusplus
 105  105  }
 106  106  #endif
 107  107  
 108  108  #endif  /* _LOCALE_H */
  
    | 
      ↓ open down ↓ | 
    14 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX