Ignore:
Timestamp:
Jan 21, 2018, 12:10:09 AM (6 years ago)
Author:
coas-nagasima
Message:

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

Location:
EcnlProtoTool/trunk/onigmo-6.1.3
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/onigmo-6.1.3/src/regposix.c

    r321 r331  
    44/*-
    55 * Copyright (c) 2002-2008  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>
    6  * Copyright (c) 2011       K.Takata  <kentkt AT csc DOT jp>
     6 * Copyright (c) 2011-2016  K.Takata  <kentkt AT csc DOT jp>
    77 * All rights reserved.
    88 *
     
    3232#include "regint.h"
    3333#undef regex_t
    34 #include "onigposix.h"
     34#include "onigmoposix.h"
    3535
    3636#define ONIG_C(reg)    ((onig_regex_t* )((reg)->onig))
     
    116116    { ONIGERR_INVALID_CHAR_PROPERTY_NAME,                 REG_BADPAT },
    117117    { ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION,         REG_EONIG_BADARG },
    118     { ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT,               REG_EONIG_THREAD }
    119118
    120119  };
     
    136135{
    137136  int r, len;
    138   OnigSyntaxType* syntax = OnigDefaultSyntax;
     137  const OnigSyntaxType* syntax = OnigDefaultSyntax;
    139138  OnigOptionType options;
    140139
     
    170169  int r, i, len;
    171170  UChar* end;
    172   regmatch_t* pm;
     171  OnigRegion* region = NULL;
    173172  OnigOptionType options;
    174173
    175   options = ONIG_OPTION_POSIX_REGION;
     174  options = ONIG_OPTION_NONE;
    176175  if ((posix_options & REG_NOTBOL) != 0) options |= ONIG_OPTION_NOTBOL;
    177176  if ((posix_options & REG_NOTEOL) != 0) options |= ONIG_OPTION_NOTEOL;
    178177
    179   if (nmatch == 0 || (reg->comp_options & REG_NOSUB) != 0) {
    180     pm = (regmatch_t* )NULL;
     178  if ((reg->comp_options & REG_NOSUB) != 0) {
    181179    nmatch = 0;
    182180  }
    183   else if ((int )nmatch < ONIG_C(reg)->num_mem + 1) {
    184     pm = (regmatch_t* )xmalloc(sizeof(regmatch_t)
    185                                * (ONIG_C(reg)->num_mem + 1));
    186     if (pm == NULL)
     181  else if (nmatch != 0) {
     182    region = onig_region_new();
     183    if (region == NULL)
    187184      return REG_ESPACE;
    188   }
    189   else {
    190     pm = pmatch;
    191185  }
    192186
     
    194188  end = (UChar* )(str + len);
    195189  r = (int )onig_search(ONIG_C(reg), (UChar* )str, end, (UChar* )str, end,
    196                   (OnigRegion* )pm, options);
     190                  region, options);
    197191
    198192  if (r >= 0) {
    199193    r = 0; /* Match */
    200     if (pm != pmatch && pm != NULL) {
    201       xmemcpy(pmatch, pm, sizeof(regmatch_t) * nmatch);
     194    for (i = 0; i < (int )nmatch; i++) {
     195      pmatch[i].rm_so = (regoff_t )region->beg[i];
     196      pmatch[i].rm_eo = (regoff_t )region->end[i];
    202197    }
    203198  }
     
    211206  }
    212207
    213   if (pm != pmatch && pm != NULL)
    214     xfree(pm);
     208  if (region != NULL)
     209    onig_region_free(region, 1);
    215210
    216211#if 0
     
    238233    enc = ONIG_ENCODING_ASCII;
    239234    break;
    240 #if 0
    241235  case REG_POSIX_ENCODING_EUC_JP:
    242236    enc = ONIG_ENCODING_EUC_JP;
     
    245239    enc = ONIG_ENCODING_SJIS;
    246240    break;
    247 #endif
    248241  case REG_POSIX_ENCODING_UTF8:
    249242    enc = ONIG_ENCODING_UTF8;
    250243    break;
    251 #if 0
    252244  case REG_POSIX_ENCODING_UTF16_BE:
    253245    enc = ONIG_ENCODING_UTF16_BE;
     
    256248    enc = ONIG_ENCODING_UTF16_LE;
    257249    break;
    258 #endif
     250
    259251  default:
    260252    return ;
Note: See TracChangeset for help on using the changeset viewer.