blob: 1d65f9fb62753668353969fd76734381ad8cd543 (
plain)
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_START����THREAD_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_START����THREAD_ATOMIC_END
�ǰϤޤ줿��ʬ�μ¹���ˡ�¾�Υ���åɤ˼¹Ը�����ư���ޤ���
(B) ���ץꥱ������������б�������
�ʲ����ݾ㤹��褦�ˡ�����åɤμ¹Ԥ����椷�Ƥ���������
Ʊ����ʣ���Υ���åɤ�������ɽ�����֥������Ȥ�������롢�ޤ��ϲ������롢���Ȥ�
�ԤʤäƤϤʤ�ʤ��������Υ��֥������Ȥ������̤Τ�ΤǤ��äƤ⡣
onig_new(), onig_new_deluxe(), onig_free()�Τɤ줫�θƤӽФ���
ʣ���Υ���åɤ�Ʊ���˼¹Ԥ��뤳�Ȥ��Ƥ���������Ʊ���Ǥʤ�����̤ˤ��ޤ��ޤ���
����ϲ���ɬ�פʤΤ��Ȥ����ȡ�����ɽ�����֥������Ȥ��������
�����ǡ������Ƕ��̤˻��Ȥ���ơ��֥뤬����ޤ���
���Υơ��֥���Ф��ƤΥǡ�����Ͽ������ʣ���Υ���åɤǾ��ͤ���
�۾�ʾ��֤ˤʤ�ʤ������ɬ�פǤ���
// END
|