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