Oniguruma source subset
This directory contains the Oniguruma sources needed by sd.cpp's UTF-8 regex wrapper.
Upstream source
- Repository: kkos/oniguruma
- Release:
v6.9.10 - Commit:
4ef89209a239c1aea328cf13c05a2807e5c146d1 - License: BSD-2-Clause
The 24 upstream files below were copied without local modifications. COPYING
comes from the upstream repository root; all other files come from upstream
src/ and retain their original filenames, flattened into this directory.
This README is maintained by sd.cpp and is not part of the upstream copy.
File selection
The following 13 C files are compiled separately:
ascii.c
regcomp.c
regenc.c
regerror.c
regexec.c
regparse.c
st.c
unicode.c
unicode_fold1_key.c
unicode_fold2_key.c
unicode_fold3_key.c
unicode_unfold_key.c
utf8.c
Four Unicode data tables are included by unicode.c and must not be compiled
as separate translation units. They were copied from upstream as supplied;
sd.cpp does not regenerate them:
unicode_fold_data.c
unicode_property_data.c
unicode_egcb_data.c
unicode_wb_data.c
The remaining files are five headers, the platform configuration template, and the license:
oniguruma.h
regint.h
regenc.h
regparse.h
st.h
config.h.cmake.in
COPYING
The wrapper uses ONIG_ENCODING_UTF8 and ONIG_SYNTAX_ONIGURUMA. ASCII support
is also retained because the engine requires it for initialization and error
handling. Unicode property, case-folding, grapheme-cluster and word-boundary
support remain enabled as in upstream.
Other encodings, GNU/POSIX compatibility APIs, unused API implementations,
upstream tests, examples, build scripts and packaging files are omitted.
This subset supports sd.cpp's internal wrapper; it does not provide the full
Oniguruma API declared in oniguruma.h.
Build integration
The parent CMake file detects platform headers and type
sizes, then generates config.h from config.h.cmake.in in the build directory.
It builds the 13 C files as the onig OBJECT target with ONIG_STATIC and
position-independent code enabled. The resulting objects are included directly
in the sd.cpp static or shared library, with no separate Oniguruma library
required by consumers.
Keep all 24 upstream files under version control, including the Unicode tables,
configuration template and license. Generated config.h and build artifacts
belong in the build directory.
When refreshing this subset, copy the listed files from the selected upstream
revision, retain COPYING, and update the revision recorded here.
Recheck source dependencies and the CMake configuration, then validate the
regex wrapper and tokenizer output on supported platforms.