Print this page
2964 need POSIX 2008 locale object support
Reviewed by: Robert Mustacchi <rm@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libc/port/locale/runetype.c
          +++ new/usr/src/lib/libc/port/locale/runetype.c
   1    1  /*
        2 + * Copyright 2013 Garrett D'Amore <garrett@damore.org>
   2    3   * Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
   3    4   * Copyright (c) 1993
   4    5   *      The Regents of the University of California.  All rights reserved.
   5    6   *
   6    7   * This code is derived from software contributed to Berkeley by
   7    8   * Paul Borman at Krystal Technologies.
   8    9   *
   9   10   * Redistribution and use in source and binary forms, with or without
  10   11   * modification, are permitted provided that the following conditions
  11   12   * are met:
↓ open down ↓ 18 lines elided ↑ open up ↑
  30   31   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31   32   * SUCH DAMAGE.
  32   33   */
  33   34  
  34   35  #include "lint.h"
  35   36  #include <ctype.h>
  36   37  #include <stdio.h>
  37   38  #include "runetype.h"
  38   39  
  39   40  unsigned int
  40      -___runetype(__ct_rune_t c)
       41 +__runetype(const _RuneLocale *rl, __ct_rune_t c)
  41   42  {
  42   43          size_t lim;
  43      -        _RuneRange *rr = &_CurrentRuneLocale->__runetype_ext;
  44      -        _RuneEntry *base, *re;
       44 +        const _RuneRange *rr = &rl->__runetype_ext;
       45 +        const _RuneEntry *base, *re;
  45   46  
  46   47          if (c < 0 || c == EOF)
  47   48                  return (0L);
  48   49  
  49   50          /* Binary search -- see bsearch.c for explanation. */
  50   51          base = rr->__ranges;
  51   52          for (lim = rr->__nranges; lim != 0; lim >>= 1) {
  52   53                  re = base + (lim >> 1);
  53   54                  if (re->__min <= c && c <= re->__max) {
  54   55                          if (re->__types)
↓ open down ↓ 11 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX