]> granicus.if.org Git - onig/blobdiff - README.md
refactoring
[onig] / README.md
index 7e039b2baeca7b72167921256b0b691b72402450..e4c55ae1da47dd52cd74674730bee6709f05b116 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,11 +1,17 @@
+[![Build Status](https://travis-ci.org/kkos/oniguruma.svg?branch=master)](https://travis-ci.org/kkos/oniguruma)
+[![Code Quality: Cpp](https://img.shields.io/lgtm/grade/cpp/g/kkos/oniguruma.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/kkos/oniguruma/context:cpp)
+[![Total Alerts](https://img.shields.io/lgtm/alerts/g/kkos/oniguruma.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/kkos/oniguruma/alerts)
+
 Oniguruma
 =========
 
 https://github.com/kkos/oniguruma
 
-Oniguruma is a regular expressions library.
-The characteristics of this library is that different character encoding
-for every regular expression object can be specified.
+Oniguruma is a modern and flexible regular expressions library. It
+encompasses features from different regular expression implementations
+that traditionally exist in different languages.
+
+Character encoding can be specified per regular expression object.
 
 Supported character encodings:
 
@@ -18,6 +24,146 @@ Supported character encodings:
 
 * GB18030: contributed by KUBO Takehiro
 * CP1251:  contributed by Byte
+* doc/SYNTAX.md: contributed by seanofw
+
+
+Master branch
+-------------
+
+* NEW API: RegSet (set of regexes)
+
+
+Version 6.9.3 (security fix release)
+------------------------------------
+
+* Fixed CVE-2019-13224
+* Fixed CVE-2019-13225
+* Fixed CVE-2019-16163
+* Fixed many problems (found by libFuzzer programs)
+
+
+Version 6.9.2 (Reiwa)
+---------------------
+
+* add doc/SYNTAX.md
+* Direct threaded code (for GCC and Clang)
+* Update Unicode version 12.1.0
+* NEW: Unicode Text Segment mode option (?y{g}) (?y{w})  (*original)
+
+
+Version 6.9.1
+-------------
+
+* Speed improvement (* especially UTF-8)
+
+
+Version 6.9.0
+-------------
+
+* Update Unicode version 11.0.0
+* NEW: add Emoji properties
+
+
+Version 6.8.2
+-------------
+
+* Fix: #80 UChar in header causes issue
+* NEW API: onig_set_callout_user_data_of_match_param()  (* omission in 6.8.0)
+* add doc/CALLOUTS.API and doc/CALLOUTS.API.ja
+
+
+Version 6.8.1
+-------------
+
+* Update shared library version to 5.0.0 for API incompatible changes from 6.7.1
+
+
+Version 6.8.0
+-------------
+
+* Retry-limit-in-match function enabled by default
+* NEW: configure option --enable-posix-api=no  (* enabled by default)
+* NEW API: onig_search_with_param(), onig_match_with_param()
+* NEW: Callouts of contents  (?{...contents...}) (?{...}\[tag]\[X<>]) (?{{...}})
+* NEW: Callouts of name      (*name) (*name\[tag]{args...})
+* NEW: Builtin callouts  (*FAIL) (*MISMATCH) (*ERROR{n}) (*COUNT) (*MAX{n}) etc..
+* Examples of Callouts program: [callout.c](sample/callout.c), [count.c](sample/count.c), [echo.c](sample/echo.c)
+
+
+Version 6.7.1
+-------------
+
+* NEW: Mechanism of retry-limit-in-match (* disabled by default)
+
+
+Version 6.7.0
+-------------
+
+* NEW: hexadecimal codepoint \uHHHH
+* NEW: add ONIG_SYNTAX_ONIGURUMA (== ONIG_SYNTAX_DEFAULT)
+* Disabled \N and \O on ONIG_SYNTAX_RUBY
+* Reduced size of object file
+
+
+Version 6.6.0
+-------------
+
+* NEW: ASCII only mode options for character type/property (?WDSP)
+* NEW: Extended Grapheme Cluster boundary \y, \Y
+* NEW: Extended Grapheme Cluster \X
+* Range-clear (Absent-clear) operator restores previous range in retractions.
+
+
+Version 6.5.0
+-------------
+
+* NEW: \K (keep)
+* NEW: \R (general newline) \N (no newline)
+* NEW: \O (true anychar)
+* NEW: if-then-else   (?(...)...\|...)
+* NEW: Backreference validity checker (?(xxx)) (*original)
+* NEW: Absent repeater (?~absent)  \[is equal to (?\~\|(?:absent)|\O*)]
+* NEW: Absent expression   (?~|absent|expr)  (*original)
+* NEW: Absent stopper (?~|absent)     (*original)
+
+
+Version 6.4.0
+-------------
+
+* Fix fatal problem of endless repeat on Windows
+* NEW: call zero (call the total regexp) \g<0>
+* NEW: relative backref/call by positive number \k<+n>, \g<+n>
+
+
+Version 6.3.0
+-------------
+
+* NEW: octal codepoint \o{.....}
+* Fixed CVE-2017-9224
+* Fixed CVE-2017-9225
+* Fixed CVE-2017-9226
+* Fixed CVE-2017-9227
+* Fixed CVE-2017-9228
+* Fixed CVE-2017-9229
+
+
+Version 6.1.2
+-------------
+
+* allow word bound, word begin and word end in look-behind.
+* NEW option: ONIG_OPTION_CHECK_VALIDITY_OF_STRING
+
+Version 6.1
+-----------
+
+* improved doc/RE
+* NEW API: onig_scan()
+
+Version 6.0
+-----------
+
+* Update Unicode 8.0 Property/Case-folding
+* NEW API: onig_unicode_define_user_property()
 
 
 License
@@ -50,21 +196,20 @@ Install
 
 
 
-### Case 2: Win32 platform (VC++)
+### Case 2: Windows 64/32bit platform (Visual Studio)
 
-   1. copy win32\Makefile src\Makefile
-   2. copy win32\config.h src\config.h
-   3. cd src
-   4. nmake
+   Execute make_win.bat
 
       onig_s.lib:  static link library
       onig.dll:    dynamic link library
 
    * test (ASCII/Shift_JIS)
 
-   1. copy win32\testc.c src\testc.c
-   2. cd src
-   3. nmake ctest
+      1. cd src
+      2. copy ..\windows\testc.c .
+      3. nmake -f Makefile.windows ctest
+
+   (I have checked by Visual Studio Community 2015)
 
 
 
@@ -81,7 +226,7 @@ Usage
   See doc/API for Oniguruma API.
 
   If you want to disable UChar type (== unsigned char) definition
-  in oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and then 
+  in oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and then
   include oniguruma.h.
 
   If you want to disable regex_t type definition in oniguruma.h,
@@ -101,14 +246,20 @@ Usage
 Sample Programs
 ---------------
 
-|File               |Description                              |
-|:------------------|:----------------------------------------|
-|sample/simple.c    |example of the minimum (Oniguruma API)   |
-|sample/names.c     |example of the named group callback.     |
-|sample/encode.c    |example of some encodings.               |
-|sample/listcap.c   |example of the capture history.          |
-|sample/posix.c     |POSIX API sample.                        |
-|sample/sql.c       |example of the variable meta characters. |
+|File                  |Description                               |
+|:---------------------|:-----------------------------------------|
+|sample/callout.c      |example of callouts                       |
+|sample/count.c        |example of built-in callout *COUNT        |
+|sample/echo.c         |example of user defined callouts of name  |
+|sample/encode.c       |example of some encodings                 |
+|sample/listcap.c      |example of the capture history            |
+|sample/names.c        |example of the named group callback       |
+|sample/posix.c        |POSIX API sample                          |
+|sample/regset.c       |example of using RegSet API               |
+|sample/scan.c         |example of using onig_scan()              |
+|sample/simple.c       |example of the minimum (Oniguruma API)    |
+|sample/sql.c          |example of the variable meta characters   |
+|sample/user_property.c|example of user defined Unicode property  |
 
 
 Test Programs
@@ -177,6 +328,6 @@ Source Files
 |utf16_le.c         |UTF-16LE encoding                                       |
 |utf32_be.c         |UTF-32BE encoding                                       |
 |utf32_le.c         |UTF-32LE encoding                                       |
-|unicode.c          |Unicode information data                                |
-|win32/Makefile     |Makefile for Win32 (VC++)                               |
-|win32/config.h     |config.h for Win32                                      |
+|unicode.c          |common codes of Unicode encoding                        |
+|unicode_fold_data.c|Unicode folding data                                    |
+|windows/testc.c    |Test program for Windows (VC++)                        |