Blame README.md

Packit Service bd74e6
Oniguruma
Packit Service bd74e6
=========
Packit Service bd74e6
Packit Service bd74e6
https://github.com/kkos/oniguruma
Packit Service bd74e6
Packit Service bd74e6
Oniguruma is a modern and flexible regular expressions library. It
Packit Service bd74e6
encompasses features from different regular expression implementations
Packit Service bd74e6
that traditionally exist in different languages. It comes close to
Packit Service bd74e6
being a complete superset of all regular expression features found
Packit Service bd74e6
in other regular expression implementations.
Packit Service bd74e6
Packit Service bd74e6
Its features include:
Packit Service bd74e6
* Character encoding can be specified per regular expression object.
Packit Service bd74e6
* Several regular expression types are supported:
Packit Service bd74e6
  * Oniguruma (native)
Packit Service bd74e6
  * POSIX
Packit Service bd74e6
  * Grep
Packit Service bd74e6
  * GNU Regex
Packit Service bd74e6
  * Perl
Packit Service bd74e6
  * Java
Packit Service bd74e6
  * Ruby
Packit Service bd74e6
  * Emacs
Packit Service bd74e6
Packit Service bd74e6
Supported character encodings:
Packit Service bd74e6
Packit Service bd74e6
  ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE,
Packit Service bd74e6
  EUC-JP, EUC-TW, EUC-KR, EUC-CN,
Packit Service bd74e6
  Shift_JIS, Big5, GB18030, KOI8-R, CP1251,
Packit Service bd74e6
  ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5,
Packit Service bd74e6
  ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10,
Packit Service bd74e6
  ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16
Packit Service bd74e6
Packit Service bd74e6
* GB18030: contributed by KUBO Takehiro
Packit Service bd74e6
* CP1251:  contributed by Byte
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.8.2
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* Fix: #80 UChar in header causes issue
Packit Service bd74e6
* NEW API: onig_set_callout_user_data_of_match_param()  (* omission in 6.8.0)
Packit Service bd74e6
* add doc/CALLOUTS.API and doc/CALLOUTS.API.ja
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.8.1
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* Update shared library version to 5.0.0 for API incompatible changes from 6.7.1
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.8.0
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* Retry-limit-in-match function enabled by default
Packit Service bd74e6
* NEW: configure option --enable-posix-api=no  (* enabled by default)
Packit Service bd74e6
* NEW API: onig_search_with_param(), onig_match_with_param()
Packit Service bd74e6
* NEW: Callouts of contents  (?{...contents...}) (?{...}\[tag]\[X<>]) (?{{...}})
Packit Service bd74e6
* NEW: Callouts of name      (*name) (*name\[tag]{args...})
Packit Service bd74e6
* NEW: Builtin callouts  (*FAIL) (*MISMATCH) (*ERROR{n}) (*COUNT) (*MAX{n}) etc..
Packit Service bd74e6
* Examples of Callouts program: [callout.c](sample/callout.c), [count.c](sample/count.c), [echo.c](sample/echo.c)
Packit Service bd74e6
Packit Service bd74e6
(* Callout function API is experimental level and isn't fixed definitely yet. Undocumented now)
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.7.1
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* NEW: Mechanism of retry-limit-in-match (* disabled by default)
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.7.0
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* NEW: hexadecimal codepoint \uHHHH
Packit Service bd74e6
* NEW: add ONIG_SYNTAX_ONIGURUMA (== ONIG_SYNTAX_DEFAULT)
Packit Service bd74e6
* Disabled \N and \O on ONIG_SYNTAX_RUBY
Packit Service bd74e6
* Reduced size of object file
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.6.0
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* NEW: ASCII only mode options for character type/property (?WDSP)
Packit Service bd74e6
* NEW: Extended Grapheme Cluster boundary \y, \Y (*original)
Packit Service bd74e6
* NEW: Extended Grapheme Cluster \X
Packit Service bd74e6
* Range-clear (Absent-clear) operator restores previous range in retractions.
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.5.0
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* NEW: \K (keep)
Packit Service bd74e6
* NEW: \R (general newline) \N (no newline)
Packit Service bd74e6
* NEW: \O (true anychar)
Packit Service bd74e6
* NEW: if-then-else   (?(...)...\|...)
Packit Service bd74e6
* NEW: Backreference validity checker (?(xxx)) (*original)
Packit Service bd74e6
* NEW: Absent repeater (?~absent)  \[is equal to (?\~\|absent|\O*)]
Packit Service bd74e6
* NEW: Absent expression   (?~|absent|expr)  (*original)
Packit Service bd74e6
* NEW: Absent stopper (?~|absent)     (*original)
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.4.0
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* Fix fatal problem of endless repeat on Windows
Packit Service bd74e6
* NEW: call zero (call the total regexp) \g<0>
Packit Service bd74e6
* NEW: relative backref/call by positive number \k<+n>, \g<+n>
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.3.0
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* NEW: octal codepoint \o{.....}
Packit Service bd74e6
* Fixed CVE-2017-9224
Packit Service bd74e6
* Fixed CVE-2017-9225
Packit Service bd74e6
* Fixed CVE-2017-9226
Packit Service bd74e6
* Fixed CVE-2017-9227
Packit Service bd74e6
* Fixed CVE-2017-9228
Packit Service bd74e6
* Fixed CVE-2017-9229
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.1.2
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* allow word bound, word begin and word end in look-behind.
Packit Service bd74e6
* NEW option: ONIG_OPTION_CHECK_VALIDITY_OF_STRING
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.1
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* improved doc/RE
Packit Service bd74e6
* NEW API: onig_scan()
Packit Service bd74e6
Packit Service bd74e6
New feature of version 6.0
Packit Service bd74e6
--------------------------
Packit Service bd74e6
Packit Service bd74e6
* Update Unicode 8.0 Property/Case-folding
Packit Service bd74e6
* NEW API: onig_unicode_define_user_property()
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
License
Packit Service bd74e6
-------
Packit Service bd74e6
Packit Service bd74e6
  BSD license.
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Install
Packit Service bd74e6
-------
Packit Service bd74e6
Packit Service bd74e6
### Case 1: Unix and Cygwin platform
Packit Service bd74e6
Packit Service bd74e6
   1. autoreconf -vfi   (* case: configure script is not found.)
Packit Service bd74e6
Packit Service bd74e6
   2. ./configure
Packit Service bd74e6
   3. make
Packit Service bd74e6
   4. make install
Packit Service bd74e6
Packit Service bd74e6
   * uninstall
Packit Service bd74e6
Packit Service bd74e6
     make uninstall
Packit Service bd74e6
Packit Service bd74e6
   * configuration check
Packit Service bd74e6
Packit Service bd74e6
     onig-config --cflags
Packit Service bd74e6
     onig-config --libs
Packit Service bd74e6
     onig-config --prefix
Packit Service bd74e6
     onig-config --exec-prefix
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
### Case 2: Windows 64/32bit platform (Visual Studio)
Packit Service bd74e6
Packit Service bd74e6
   execute make_win64 or make_win32
Packit Service bd74e6
Packit Service bd74e6
      onig_s.lib:  static link library
Packit Service bd74e6
      onig.dll:    dynamic link library
Packit Service bd74e6
Packit Service bd74e6
   * test (ASCII/Shift_JIS)
Packit Service bd74e6
Packit Service bd74e6
      1. cd src
Packit Service bd74e6
      2. copy ..\windows\testc.c .
Packit Service bd74e6
      3. nmake -f Makefile.windows ctest
Packit Service bd74e6
Packit Service bd74e6
   (I have checked by Visual Studio Community 2015)
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Regular Expressions
Packit Service bd74e6
-------------------
Packit Service bd74e6
Packit Service bd74e6
  See [doc/RE](doc/RE) or [doc/RE.ja](doc/RE.ja) for Japanese.
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Usage
Packit Service bd74e6
-----
Packit Service bd74e6
Packit Service bd74e6
  Include oniguruma.h in your program. (Oniguruma API)
Packit Service bd74e6
  See doc/API for Oniguruma API.
Packit Service bd74e6
Packit Service bd74e6
  If you want to disable UChar type (== unsigned char) definition
Packit Service bd74e6
  in oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and then 
Packit Service bd74e6
  include oniguruma.h.
Packit Service bd74e6
Packit Service bd74e6
  If you want to disable regex_t type definition in oniguruma.h,
Packit Service bd74e6
  define ONIG_ESCAPE_REGEX_T_COLLISION and then include oniguruma.h.
Packit Service bd74e6
Packit Service bd74e6
  Example of the compiling/linking command line in Unix or Cygwin,
Packit Service bd74e6
  (prefix == /usr/local case)
Packit Service bd74e6
Packit Service bd74e6
    cc sample.c -L/usr/local/lib -lonig
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
  If you want to use static link library(onig_s.lib) in Win32,
Packit Service bd74e6
  add option -DONIG_EXTERN=extern to C compiler.
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Sample Programs
Packit Service bd74e6
---------------
Packit Service bd74e6
Packit Service bd74e6
|File                  |Description                               |
Packit Service bd74e6
|:---------------------|:-----------------------------------------|
Packit Service bd74e6
|sample/simple.c       |example of the minimum (Oniguruma API)    |
Packit Service bd74e6
|sample/names.c        |example of the named group callback.      |
Packit Service bd74e6
|sample/encode.c       |example of some encodings.                |
Packit Service bd74e6
|sample/listcap.c      |example of the capture history.           |
Packit Service bd74e6
|sample/posix.c        |POSIX API sample.                         |
Packit Service bd74e6
|sample/scan.c         |example of using onig_scan().             |
Packit Service bd74e6
|sample/sql.c          |example of the variable meta characters.  |
Packit Service bd74e6
|sample/user_property.c|example of user defined Unicode property. |
Packit Service bd74e6
|sample/callout.c      |example of callouts.                      |
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Test Programs
Packit Service bd74e6
Packit Service bd74e6
|File               |Description                            |
Packit Service bd74e6
|:------------------|:--------------------------------------|
Packit Service bd74e6
|sample/syntax.c    |Perl, Java and ASIS syntax test.       |
Packit Service bd74e6
|sample/crnl.c      |--enable-crnl-as-line-terminator test  |
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Packit Service bd74e6
Source Files
Packit Service bd74e6
------------
Packit Service bd74e6
Packit Service bd74e6
|File               |Description                                             |
Packit Service bd74e6
|:------------------|:-------------------------------------------------------|
Packit Service bd74e6
|oniguruma.h        |Oniguruma API header file (public)                      |
Packit Service bd74e6
|onig-config.in     |configuration check program template                    |
Packit Service bd74e6
|regenc.h           |character encodings framework header file               |
Packit Service bd74e6
|regint.h           |internal definitions                                    |
Packit Service bd74e6
|regparse.h         |internal definitions for regparse.c and regcomp.c       |
Packit Service bd74e6
|regcomp.c          |compiling and optimization functions                    |
Packit Service bd74e6
|regenc.c           |character encodings framework                           |
Packit Service bd74e6
|regerror.c         |error message function                                  |
Packit Service bd74e6
|regext.c           |extended API functions (deluxe version API)             |
Packit Service bd74e6
|regexec.c          |search and match functions                              |
Packit Service bd74e6
|regparse.c         |parsing functions.                                      |
Packit Service bd74e6
|regsyntax.c        |pattern syntax functions and built-in syntax definitions|
Packit Service bd74e6
|regtrav.c          |capture history tree data traverse functions            |
Packit Service bd74e6
|regversion.c       |version info function                                   |
Packit Service bd74e6
|st.h               |hash table functions header file                        |
Packit Service bd74e6
|st.c               |hash table functions                                    |
Packit Service bd74e6
|oniggnu.h          |GNU regex API header file (public)                      |
Packit Service bd74e6
|reggnu.c           |GNU regex API functions                                 |
Packit Service bd74e6
|onigposix.h        |POSIX API header file (public)                          |
Packit Service bd74e6
|regposerr.c        |POSIX error message function                            |
Packit Service bd74e6
|regposix.c         |POSIX API functions                                     |
Packit Service bd74e6
|mktable.c          |character type table generator                          |
Packit Service bd74e6
|ascii.c            |ASCII encoding                                          |
Packit Service bd74e6
|euc_jp.c           |EUC-JP encoding                                         |
Packit Service bd74e6
|euc_tw.c           |EUC-TW encoding                                         |
Packit Service bd74e6
|euc_kr.c           |EUC-KR, EUC-CN encoding                                 |
Packit Service bd74e6
|sjis.c             |Shift_JIS encoding                                      |
Packit Service bd74e6
|big5.c             |Big5      encoding                                      |
Packit Service bd74e6
|gb18030.c          |GB18030   encoding                                      |
Packit Service bd74e6
|koi8.c             |KOI8      encoding                                      |
Packit Service bd74e6
|koi8_r.c           |KOI8-R    encoding                                      |
Packit Service bd74e6
|cp1251.c           |CP1251    encoding                                      |
Packit Service bd74e6
|iso8859_1.c        |ISO-8859-1 (Latin-1)                                    |
Packit Service bd74e6
|iso8859_2.c        |ISO-8859-2 (Latin-2)                                    |
Packit Service bd74e6
|iso8859_3.c        |ISO-8859-3 (Latin-3)                                    |
Packit Service bd74e6
|iso8859_4.c        |ISO-8859-4 (Latin-4)                                    |
Packit Service bd74e6
|iso8859_5.c        |ISO-8859-5 (Cyrillic)                                   |
Packit Service bd74e6
|iso8859_6.c        |ISO-8859-6 (Arabic)                                     |
Packit Service bd74e6
|iso8859_7.c        |ISO-8859-7 (Greek)                                      |
Packit Service bd74e6
|iso8859_8.c        |ISO-8859-8 (Hebrew)                                     |
Packit Service bd74e6
|iso8859_9.c        |ISO-8859-9 (Latin-5 or Turkish)                         |
Packit Service bd74e6
|iso8859_10.c       |ISO-8859-10 (Latin-6 or Nordic)                         |
Packit Service bd74e6
|iso8859_11.c       |ISO-8859-11 (Thai)                                      |
Packit Service bd74e6
|iso8859_13.c       |ISO-8859-13 (Latin-7 or Baltic Rim)                     |
Packit Service bd74e6
|iso8859_14.c       |ISO-8859-14 (Latin-8 or Celtic)                         |
Packit Service bd74e6
|iso8859_15.c       |ISO-8859-15 (Latin-9 or West European with Euro)        |
Packit Service bd74e6
|iso8859_16.c       |ISO-8859-16 (Latin-10)                                  |
Packit Service bd74e6
|utf8.c             |UTF-8    encoding                                       |
Packit Service bd74e6
|utf16_be.c         |UTF-16BE encoding                                       |
Packit Service bd74e6
|utf16_le.c         |UTF-16LE encoding                                       |
Packit Service bd74e6
|utf32_be.c         |UTF-32BE encoding                                       |
Packit Service bd74e6
|utf32_le.c         |UTF-32LE encoding                                       |
Packit Service bd74e6
|unicode.c          |common codes of Unicode encoding                        |
Packit Service bd74e6
|unicode_fold_data.c|Unicode folding data                                    |
Packit Service bd74e6
|win32/Makefile     |Makefile for Win32 (VC++)                               |
Packit Service bd74e6
|win32/config.h     |config.h for Win32                                      |