Print this page
2964 need POSIX 2008 locale object support

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libc/port/locale/mblocal.h
          +++ new/usr/src/lib/libc/port/locale/mblocal.h
   1    1  /*
   2    2   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
   3    3   * Copyright (c) 2004 Tim J. Robbins.
   4    4   * All rights reserved.
   5    5   *
        6 + * Copyright (c) 2011 The FreeBSD Foundation
        7 + * All rights reserved.
        8 + * Portions of this software were developed by David Chisnall
        9 + * under sponsorship from the FreeBSD Foundation.
       10 + *
   6   11   * Redistribution and use in source and binary forms, with or without
   7   12   * modification, are permitted provided that the following conditions
   8   13   * are met:
   9   14   * 1. Redistributions of source code must retain the above copyright
  10   15   *    notice, this list of conditions and the following disclaimer.
  11   16   * 2. Redistributions in binary form must reproduce the above copyright
  12   17   *    notice, this list of conditions and the following disclaimer in the
  13   18   *    documentation and/or other materials provided with the distribution.
  14   19   *
  15   20   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
↓ open down ↓ 6 lines elided ↑ open up ↑
  22   27   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  23   28   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  24   29   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  25   30   * SUCH DAMAGE.
  26   31   */
  27   32  
  28   33  #ifndef _MBLOCAL_H_
  29   34  #define _MBLOCAL_H_
  30   35  
  31   36  #include "runetype.h"
       37 +#include "xlocale_private.h"
       38 +
       39 +/*
       40 + * Conversion function pointers for current encoding.
       41 + */
       42 +struct xlocale_ctype {
       43 +        struct xlocale_component header;
       44 +        _RuneLocale *runes;
       45 +        size_t (*__mbrtowc)(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
       46 +            size_t, mbstate_t *_RESTRICT_KYWD);
       47 +        int (*__mbsinit)(const mbstate_t *);
       48 +        size_t (*__mbsnrtowcs)(wchar_t *_RESTRICT_KYWD, const char **_RESTRICT_KYWD,
       49 +            size_t, size_t, mbstate_t *_RESTRICT_KYWD);
       50 +        size_t (*__wcrtomb)(char *_RESTRICT_KYWD, wchar_t, mbstate_t *_RESTRICT_KYWD);
       51 +        size_t (*__wcsnrtombs)(char *_RESTRICT_KYWD, const wchar_t **_RESTRICT_KYWD,
       52 +            size_t, size_t, mbstate_t *_RESTRICT_KYWD);
       53 +        int __mb_cur_max;
       54 +        int __mb_sb_limit;
       55 +};
       56 +#define XLOCALE_CTYPE(x)        ((struct xlocale_ctype*)(x)->components[XLC_CTYPE])
       57 +extern struct xlocale_ctype __xlocale_global_ctype;
  32   58  
  33   59  /*
  34   60   * Rune initialization function prototypes.
  35   61   */
  36      -int     _none_init(_RuneLocale *);
       62 +int     _none_init(struct xlocale_ctype *, _RuneLocale *);
  37   63  int     _UTF8_init(_RuneLocale *);
  38   64  int     _EUC_CN_init(_RuneLocale *);
  39   65  int     _EUC_JP_init(_RuneLocale *);
  40   66  int     _EUC_KR_init(_RuneLocale *);
  41   67  int     _EUC_TW_init(_RuneLocale *);
  42   68  int     _GB18030_init(_RuneLocale *);
  43   69  int     _GB2312_init(_RuneLocale *);
  44   70  int     _GBK_init(_RuneLocale *);
  45   71  int     _BIG5_init(_RuneLocale *);
  46   72  int     _MSKanji_init(_RuneLocale *);
↓ open down ↓ 26 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX