]> granicus.if.org Git - onig/blob - README.md
add a description of fixed security issues
[onig] / README.md
1 Oniguruma
2 =========
3
4 https://github.com/kkos/oniguruma
5
6 FIXED Security Issues:
7 --------------------------
8   CVE-2017-9224, CVE-2017-9225, CVE-2017-9226
9   CVE-2017-9227, CVE-2017-9228, CVE-2017-9229
10
11
12 Oniguruma is a regular expressions library.
13 The characteristics of this library is that different character encoding
14 for every regular expression object can be specified.
15
16 Supported character encodings:
17
18   ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE,
19   EUC-JP, EUC-TW, EUC-KR, EUC-CN,
20   Shift_JIS, Big5, GB18030, KOI8-R, CP1251,
21   ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5,
22   ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10,
23   ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16
24
25 * GB18030: contributed by KUBO Takehiro
26 * CP1251:  contributed by Byte
27
28
29 New feature of version 6.4.0
30 --------------------------
31
32 * Fix fatal problem of endless repeat on Windows
33 * NEW: call zero (call the total regexp)
34 * NEW: relative backref and relative call by positive number
35
36
37 New feature of version 6.3.0
38 --------------------------
39
40 * NEW SYNTAX: escape-o-brace for octal codepoint.
41
42
43 New feature of version 6.1.2
44 --------------------------
45
46 * allow word bound, word begin and word end in look-behind.
47 * NEW option: ONIG_OPTION_CHECK_VALIDITY_OF_STRING
48
49 New feature of version 6.1
50 --------------------------
51
52 * improved doc/RE
53 * NEW API: onig_scan()
54
55 New feature of version 6.0
56 --------------------------
57
58 * Update Unicode 8.0 Property/Case-folding
59 * NEW API: onig_unicode_define_user_property()
60
61
62 License
63 -------
64
65   BSD license.
66
67
68 Install
69 -------
70
71 ### Case 1: Unix and Cygwin platform
72
73    1. autoreconf -vfi   (* case: configure script is not found.)
74
75    2. ./configure
76    3. make
77    4. make install
78
79    * uninstall
80
81      make uninstall
82
83    * configuration check
84
85      onig-config --cflags
86      onig-config --libs
87      onig-config --prefix
88      onig-config --exec-prefix
89
90
91
92 ### Case 2: Windows 64/32bit platform (Visual Studio)
93
94    execute make_win64 or make_win32
95
96       onig_s.lib:  static link library
97       onig.dll:    dynamic link library
98
99    * test (ASCII/Shift_JIS)
100
101       1. cd src
102       2. copy ..\windows\testc.c .
103       3. nmake -f Makefile.windows ctest
104
105    (I have checked by Visual Studio Community 2015)
106
107
108
109 Regular Expressions
110 -------------------
111
112   See [doc/RE](doc/RE) or [doc/RE.ja](doc/RE.ja) for Japanese.
113
114
115 Usage
116 -----
117
118   Include oniguruma.h in your program. (Oniguruma API)
119   See doc/API for Oniguruma API.
120
121   If you want to disable UChar type (== unsigned char) definition
122   in oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and then 
123   include oniguruma.h.
124
125   If you want to disable regex_t type definition in oniguruma.h,
126   define ONIG_ESCAPE_REGEX_T_COLLISION and then include oniguruma.h.
127
128   Example of the compiling/linking command line in Unix or Cygwin,
129   (prefix == /usr/local case)
130
131     cc sample.c -L/usr/local/lib -lonig
132
133
134   If you want to use static link library(onig_s.lib) in Win32,
135   add option -DONIG_EXTERN=extern to C compiler.
136
137
138
139 Sample Programs
140 ---------------
141
142 |File                  |Description                               |
143 |:---------------------|:-----------------------------------------|
144 |sample/simple.c       |example of the minimum (Oniguruma API)    |
145 |sample/names.c        |example of the named group callback.      |
146 |sample/encode.c       |example of some encodings.                |
147 |sample/listcap.c      |example of the capture history.           |
148 |sample/posix.c        |POSIX API sample.                         |
149 |sample/scan.c         |example of using onig_scan().             |
150 |sample/sql.c          |example of the variable meta characters.  |
151 |sample/user_property.c|example of user defined Unicode property. |
152
153
154 Test Programs
155
156 |File               |Description                            |
157 |:------------------|:--------------------------------------|
158 |sample/syntax.c    |Perl, Java and ASIS syntax test.       |
159 |sample/crnl.c      |--enable-crnl-as-line-terminator test  |
160
161
162
163 Source Files
164 ------------
165
166 |File               |Description                                             |
167 |:------------------|:-------------------------------------------------------|
168 |oniguruma.h        |Oniguruma API header file (public)                      |
169 |onig-config.in     |configuration check program template                    |
170 |regenc.h           |character encodings framework header file               |
171 |regint.h           |internal definitions                                    |
172 |regparse.h         |internal definitions for regparse.c and regcomp.c       |
173 |regcomp.c          |compiling and optimization functions                    |
174 |regenc.c           |character encodings framework                           |
175 |regerror.c         |error message function                                  |
176 |regext.c           |extended API functions (deluxe version API)             |
177 |regexec.c          |search and match functions                              |
178 |regparse.c         |parsing functions.                                      |
179 |regsyntax.c        |pattern syntax functions and built-in syntax definitions|
180 |regtrav.c          |capture history tree data traverse functions            |
181 |regversion.c       |version info function                                   |
182 |st.h               |hash table functions header file                        |
183 |st.c               |hash table functions                                    |
184 |oniggnu.h          |GNU regex API header file (public)                      |
185 |reggnu.c           |GNU regex API functions                                 |
186 |onigposix.h        |POSIX API header file (public)                          |
187 |regposerr.c        |POSIX error message function                            |
188 |regposix.c         |POSIX API functions                                     |
189 |mktable.c          |character type table generator                          |
190 |ascii.c            |ASCII encoding                                          |
191 |euc_jp.c           |EUC-JP encoding                                         |
192 |euc_tw.c           |EUC-TW encoding                                         |
193 |euc_kr.c           |EUC-KR, EUC-CN encoding                                 |
194 |sjis.c             |Shift_JIS encoding                                      |
195 |big5.c             |Big5      encoding                                      |
196 |gb18030.c          |GB18030   encoding                                      |
197 |koi8.c             |KOI8      encoding                                      |
198 |koi8_r.c           |KOI8-R    encoding                                      |
199 |cp1251.c           |CP1251    encoding                                      |
200 |iso8859_1.c        |ISO-8859-1 (Latin-1)                                    |
201 |iso8859_2.c        |ISO-8859-2 (Latin-2)                                    |
202 |iso8859_3.c        |ISO-8859-3 (Latin-3)                                    |
203 |iso8859_4.c        |ISO-8859-4 (Latin-4)                                    |
204 |iso8859_5.c        |ISO-8859-5 (Cyrillic)                                   |
205 |iso8859_6.c        |ISO-8859-6 (Arabic)                                     |
206 |iso8859_7.c        |ISO-8859-7 (Greek)                                      |
207 |iso8859_8.c        |ISO-8859-8 (Hebrew)                                     |
208 |iso8859_9.c        |ISO-8859-9 (Latin-5 or Turkish)                         |
209 |iso8859_10.c       |ISO-8859-10 (Latin-6 or Nordic)                         |
210 |iso8859_11.c       |ISO-8859-11 (Thai)                                      |
211 |iso8859_13.c       |ISO-8859-13 (Latin-7 or Baltic Rim)                     |
212 |iso8859_14.c       |ISO-8859-14 (Latin-8 or Celtic)                         |
213 |iso8859_15.c       |ISO-8859-15 (Latin-9 or West European with Euro)        |
214 |iso8859_16.c       |ISO-8859-16 (Latin-10)                                  |
215 |utf8.c             |UTF-8    encoding                                       |
216 |utf16_be.c         |UTF-16BE encoding                                       |
217 |utf16_le.c         |UTF-16LE encoding                                       |
218 |utf32_be.c         |UTF-32BE encoding                                       |
219 |utf32_le.c         |UTF-32LE encoding                                       |
220 |unicode.c          |common codes of Unicode encoding                        |
221 |unicode_fold_data.c|Unicode folding data                                    |
222 |win32/Makefile     |Makefile for Win32 (VC++)                               |
223 |win32/config.h     |config.h for Win32                                      |