3 Oniguruma ---- (C) K.Kosako
5 https://github.com/kkos/oniguruma
8 CVE-2017-9224, CVE-2017-9225, CVE-2017-9226
9 CVE-2017-9227, CVE-2017-9228, CVE-2017-9229
12 Oniguruma is a modern and flexible regular expressions library. It
13 encompasses features from different regular expression implementations
14 that traditionally exist in different languages. It comes close to
15 being a complete superset of all regular expression features found
16 in other regular expression implementations.
19 * Character encoding can be specified per regular expression object.
20 * Several regular expression types are supported:
29 Supported character encodings:
31 ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE,
32 EUC-JP, EUC-TW, EUC-KR, EUC-CN,
33 Shift_JIS, Big5, GB18030, KOI8-R, CP1251,
34 ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5,
35 ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10,
36 ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16
38 * GB18030: contributed by KUBO Takehiro
39 * CP1251: contributed by Byte
40 ------------------------------------------------------------
49 Case 1: Unix and Cygwin platform
51 1. autoreconf -vfi (* case: configure script is not found.)
66 onig-config --exec-prefix
70 Case 2: Windows 64/32bit platform (Visual Studio)
72 execute make_win64 or make_win32
74 src/onig_s.lib: static link library
75 src/onig.dll: dynamic link library
77 * test (ASCII/Shift_JIS)
79 2. copy ..\windows\testc.c .
80 3. nmake -f Makefile.windows ctest
82 (I have checked by Visual Studio Community 2015)
88 See doc/RE (or doc/RE.ja for Japanese).
93 Include oniguruma.h in your program. (Oniguruma API)
94 See doc/API for Oniguruma API.
96 If you want to disable UChar type (== unsigned char) definition
97 in oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and then
100 If you want to disable regex_t type definition in oniguruma.h,
101 define ONIG_ESCAPE_REGEX_T_COLLISION and then include oniguruma.h.
103 Example of the compiling/linking command line in Unix or Cygwin,
104 (prefix == /usr/local case)
106 cc sample.c -L/usr/local/lib -lonig
109 If you want to use static link library(onig_s.lib) in Win32,
110 add option -DONIG_EXTERN=extern to C compiler.
116 sample/simple.c example of the minimum (Oniguruma API)
117 sample/names.c example of the named group callback.
118 sample/encode.c example of some encodings.
119 sample/listcap.c example of the capture history.
120 sample/posix.c POSIX API sample.
121 sample/sql.c example of the variable meta characters.
122 (SQL-like pattern matching)
123 sample/user_property.c example of user defined Unicode property.
126 sample/syntax.c Perl, Java and ASIS syntax test.
127 sample/crnl.c --enable-crnl-as-line-terminator test
132 oniguruma.h Oniguruma API header file. (public)
133 onig-config.in configuration check program template.
135 regenc.h character encodings framework header file.
136 regint.h internal definitions
137 regparse.h internal definitions for regparse.c and regcomp.c
138 regcomp.c compiling and optimization functions
139 regenc.c character encodings framework.
140 regerror.c error message function
141 regext.c extended API functions. (deluxe version API)
142 regexec.c search and match functions
143 regparse.c parsing functions.
144 regsyntax.c pattern syntax functions and built-in syntax definitions.
145 regtrav.c capture history tree data traverse functions.
146 regversion.c version info function.
147 st.h hash table functions header file
148 st.c hash table functions
150 oniggnu.h GNU regex API header file. (public)
151 reggnu.c GNU regex API functions
153 onigposix.h POSIX API header file. (public)
154 regposerr.c POSIX error message function.
155 regposix.c POSIX API functions.
157 mktable.c character type table generator.
158 ascii.c ASCII encoding.
159 euc_jp.c EUC-JP encoding.
160 euc_tw.c EUC-TW encoding.
161 euc_kr.c EUC-KR, EUC-CN encoding.
162 sjis.c Shift_JIS encoding.
163 big5.c Big5 encoding.
164 gb18030.c GB18030 encoding.
165 koi8.c KOI8 encoding.
166 koi8_r.c KOI8-R encoding.
167 cp1251.c CP1251 encoding.
168 iso8859_1.c ISO-8859-1 encoding. (Latin-1)
169 iso8859_2.c ISO-8859-2 encoding. (Latin-2)
170 iso8859_3.c ISO-8859-3 encoding. (Latin-3)
171 iso8859_4.c ISO-8859-4 encoding. (Latin-4)
172 iso8859_5.c ISO-8859-5 encoding. (Cyrillic)
173 iso8859_6.c ISO-8859-6 encoding. (Arabic)
174 iso8859_7.c ISO-8859-7 encoding. (Greek)
175 iso8859_8.c ISO-8859-8 encoding. (Hebrew)
176 iso8859_9.c ISO-8859-9 encoding. (Latin-5 or Turkish)
177 iso8859_10.c ISO-8859-10 encoding. (Latin-6 or Nordic)
178 iso8859_11.c ISO-8859-11 encoding. (Thai)
179 iso8859_13.c ISO-8859-13 encoding. (Latin-7 or Baltic Rim)
180 iso8859_14.c ISO-8859-14 encoding. (Latin-8 or Celtic)
181 iso8859_15.c ISO-8859-15 encoding. (Latin-9 or West European with Euro)
182 iso8859_16.c ISO-8859-16 encoding.
183 (Latin-10 or South-Eastern European with Euro)
184 utf8.c UTF-8 encoding.
185 utf16_be.c UTF-16BE encoding.
186 utf16_le.c UTF-16LE encoding.
187 utf32_be.c UTF-32BE encoding.
188 utf32_le.c UTF-32LE encoding.
189 unicode.c common codes of Unicode encoding.
191 win32/Makefile Makefile for Win32 (VC++)
192 win32/config.h config.h for Win32
195 and I'm thankful to Akinori MUSHA.