1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
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
|