aboutsummaryrefslogtreecommitdiffstats
path: root/regcomp.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix onigmo name table without stNobuyoshi Nakada2023-11-031-2/+2
| | | | Co-authored-by: Adam Hess <HParker@github.com>
* Optimize regexp matching for look-around and atomic groups (#7931)Hiroya Fujinami2023-10-301-0/+14
|
* Use onig_new_without_alloc for onig_newPeter Zhu2023-07-271-7/+2
|
* Don't check for null pointer in calls to freePeter Zhu2023-06-301-10/+9
| | | | | | | | According to the C99 specification section 7.20.3.2 paragraph 2: > If ptr is a null pointer, no action occurs. So we do not need to check that the pointer is a null pointer.
* Optimize `Regexp#dup` and `Regexp.new(/RE/)`Nobuyoshi Nakada2023-06-091-0/+74
| | | | | When copying from another regexp, copy already built `regex_t` instead of re-compiling its source.
* Use `roomof` macro for rounding up divisionsNobuyoshi Nakada2022-10-141-1/+1
|
* Just free compiled pattern if no space is usedNobuyoshi Nakada2022-04-121-6/+8
| | | | https://hackerone.com/reports/1220911
* re.c: Add Regexp.timeout= and Regexp.timeoutYusuke Endoh2022-03-301-0/+3
| | | | [Feature #17837]
* Cast up to get rid of the potential overflow posibilityNobuyoshi Nakada2021-10-141-1/+1
|
* Fixed shorten-64-to-32 errors when USE_COMBINATION_EXPLOSION_CHECKNobuyoshi Nakada2021-05-071-2/+0
|
* Check backref number buffer overrun [Bug #16376]xtkoba (Tee KOBAYASHI)2021-03-151-9/+12
|
* Right size literal regular expression buffers on compileLourens Naudé2020-12-101-0/+20
|
* Fix issues detected by code analysis tool (mainly Coverity).nobu2018-09-151-0/+3
| | | | | | | | | | | * Fix leaked storage in addr2line.c. * Fix for "top_root" leaking the resource. [Fix GH-1956] From: Jun Aruga <jaruga@redhat.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix typos.hsbt2018-01-181-5/+5
| | | | | | | * rememberd -> remembered * refered -> referred git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge Onigmo 6.1.1naruse2017-02-111-42/+57
| | | | | | | * Support absent operator https://github.com/k-takata/Onigmo/issues/82 * https://github.com/k-takata/Onigmo/blob/Onigmo-6.1.1/HISTORY git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* regcomp.c: debug function [ci skip]nobu2017-01-251-1/+1
| | | | | | * regcomp.c (print_indent_tree): make a function for debug static. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* regcomp.c: Fix compile error with old version of fcc on Solarisngoto2016-12-211-1/+1
| | | | | | | | * regcomp.c (get_min_match_length): Fix compile error with old version of fcc (Fujitsu C Compiler) on Solaris 10. [Bug #13059][ruby-dev:49909] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge Onigmo 6.0.0naruse2016-12-101-307/+276
| | | | | | | | | | | * https://github.com/k-takata/Onigmo/blob/Onigmo-6.0.0/HISTORY * fix for ruby 2.4: https://github.com/k-takata/Onigmo/pull/78 * suppress warning: https://github.com/k-takata/Onigmo/pull/79 * include/ruby/oniguruma.h: include onigmo.h. * template/encdb.h.tmpl: ignore duplicated definition of EUC-CN in enc/euc_kr.c. It is defined in enc/gb2313.c with CRuby macro. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57045 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Regexp supports Unicoe 9.0.0's \Xnaruse2016-11-301-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | * meta character \X matches Unicode 9.0.0 characters with some workarounds for UTR #51 Unicode Emoji, Version 4.0 emoji zwj sequences. [Feature #12831] [ruby-core:77586] The term "character" can have many meanings bytes, codepoints, combined characters, and so on. "grapheme cluster" is highest one of such words, which means user-perceived characters. Unicode Standard Annex #29 UNICODE TEXT SEGMENTATION specifies how to handle grapheme clusters (extended grapheme cluster). But some specs aren't updated to current situation because Unicode Emoji is rapidly extended without well definition. It breaks the precondition of UTR#29 "Grapheme cluster boundaries can be easily tested by looking at immediately adjacent characters". (the sentence will be removed in the next version) Though some of its detail are described in Unicode Technical Report #51 UNICODE EMOJI but it is not merged into UTR#29 yet. http://unicode.org/reports/tr29/ http://unicode.org/reports/tr51/ http://unicode.org/Public/emoji/4.0/ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (onig_print_compiled_byte_code): make the shown addressnaruse2016-10-031-1/+1
| | | | | | look relative. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (noname_disable_map): don't optimize out group 0naruse2016-07-011-4/+3
| | | | | | | | | | Ruby's Regexp doesn't allow normal numbered groups if the regexp has named groups. On such case it optimizes out related NT_ENCLOSE. But even on the case it can use \g<0>. This fix not to remove NT_ENCLOSE whose regnum is 0. [ruby-core:75828] [Bug #12454] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* regcomp.c: fix debug conditionalsnobu2016-05-251-7/+13
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c: remove condition for debug output because preludenaruse2016-05-251-16/+8
| | | | | | doesn't use regexp now. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (compile_length_tree): return error code immediatelynaruse2016-05-251-5/+7
| | | | | | if compile_length_tree raised error [Bug #12418] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r52995nobu2015-12-091-5/+4
| | | | | | revert slow atomic operations. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use atomic operationsnobu2015-12-091-4/+5
| | | | | | | | | * regcomp.c (onig_chain_link_add): use atomic operation instead of mutex. * regint.h (ONIG_STATE_{INC,DEC}_THREAD): ditto. * regparse.c (PopFreeNode, node_recycle): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c, regenc.c, regexec.c, regint.h, enc/unicode.c:naruse2015-11-261-1/+34
| | | | | | | Merge Onigmo 58fa099ed1a34367de67fb3d06dd48d076839692 + https://github.com/k-takata/Onigmo/pull/52 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * reg*.c: Merge Onigmo 5.15.0 38a870960aa7370051a3544naruse2014-09-151-56/+71
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c: Merge Onigmo 5.14.1 25a8a69fc05ae3b56a09.naruse2014-07-161-51/+63
| | | | | | this includes Support for Unicode 7.0 [Bug #9092]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (): Merge Onigmo 5.13.5 23b523076d6f1161.naruse2013-07-041-4/+9
| | | | | | https://bugs.ruby-lang.org/issues/8583 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Merge Onigmo 5.13.4 f22cf2e566712cace60d17f84d63119d7c5764ee.naruse2013-04-131-1/+1
| | | | | | [bug] fix problem with optimization of \z (Issue #16) [Bug #8210] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Merge Onigmo 0fe387da2fee089254f6b04990541c731a26757fnaruse2013-03-011-15/+18
| | | | | | v5.13.3 [Bug#7972] [Bug#7974] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Remove unused variables.naruse2012-03-051-4/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c, regexec.c: fix-up warnings.nobu2012-02-181-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Merge Onigmo-5.13.1. [ruby-dev:45057] [Feature #5820]naruse2012-02-171-93/+451
| | | | | | | | | | https://github.com/k-takata/Onigmo cp reg{comp,enc,error,exec,parse,syntax}.c reg{enc,int,parse}.h cp oniguruma.h cp tool/enc-unicode.rb cp -r enc/ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (onig_region_memsize): implemented for memsize_of().nobu2011-12-151-0/+10
| | | | | | | * ext/objspace/objspace.c (memsize_of): use it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * class.c (rb_obj_methods), compile.c (iseq_compile_each),nobu2011-12-051-4/+2
| | | | | | | | | iseq.c(iseq_load, rb_iseq_parameters), pack.c (pack_pack), regcomp.c (is_not_included, update_string_node_case_fold), transcode.c (rb_econv_open0, make_replacement), vm_eval.c (raise_method_missing): remove unused variable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (print_indent_tree): fix double printing of ENCLOSE_OPTIONnaruse2011-11-151-1/+0
| | | | | | children bug. patched by Suraj Kurapati. [ruby-core:40964] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Show encoding of compiling regexp.naruse2011-02-231-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * addr2line.c: suppressed shorten-64-to-32 warnings.naruse2011-01-311-25/+27
| | | | | | | | | | | | * regcomp.c: ditto. * regexec.c: ditto. * regint.h: ditto. * regparse.c: ditto. * regparse.h: ditto. * time.c: ditto. * variable.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (setup_tree): restart setup_tree() for a node whosenaruse2010-11-261-0/+12
| | | | | | | | AnchorNode's type is ANCHOR_PREC_BEHIND or ANCHOR_PREC_BEHIND_NOT and divide_look_behind_alternatives() divided it to NT_ALT or NT_LIST. [ruby-core:33370] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (onig_is_prelude): added to check whether ruby is stillnaruse2010-11-261-15/+24
| | | | | | | | | | | | | | | | | in prelude (or other boot processes) or not. * regcomp.c (optimize_node_left): use onig_is_prelude for printing. * regcomp.c (set_optimize_info_from_tree): ditto. * regcomp.c (onig_compile): ditto. * regcomp.c (print_compiled_byte_code_list): print its address. * regcomp.c (print_indent_tree): print its contents tree of ANCHOR_PREC_READ(_NOT) and ANCHOR_PREC_BEHIND(_NOT). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (print_distance_range): use PRIuSIZE.naruse2010-11-251-3/+3
| | | | | | | | | | | * regcomp.c (print_optimize_info): use %ld because the type of calcutated value of integers is long. * regexec.c (onig_print_compiled_byte_code): add prototype. * regexec.c (match_at): add 2nd argument. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regint.h (OnigOpInfoType): constify name.naruse2010-11-171-15/+15
| | | | | | | | | | | | | * regcomp.c (op2name): constify return value. * regcomp.c (onig_print_compiled_byte_code): use PRIuPTR and uintptr_t to clean warnings. * regcomp.c (print_indent_tree): use PRIxPTR and intptr_t. * regexec.c (match_at): use PRIdPTR and intptr_t. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c: revert r26701; it introduces Bug #3681.naruse2010-08-171-18/+2
| | | | | | [ruby-core:31677] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (onig_memsize): constified.nobu2010-08-141-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (noname_disable_map): add NT_ANCHOR case.naruse2010-03-021-0/+28
| | | | | | | | | | Without this change, captured groups in anchors (look-ahead, look-behind, and so on) are not removed and unintended invalid backref error occur. [ruby-core:28235] * regcomp.c (renumber_by_map): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/oniguruma.h: updated to follow Oniguruma 5.9.2.matz2010-03-011-112/+55
| | | | | | | | * re.c (make_regexp): use onig_new() instead of onig_alloc_init(). * re.c (rb_reg_to_s): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (setup_tree, onig_compile): optimize .* at last bymame2010-02-171-2/+18
| | | | | | | | converting into (?>.*), which does not backtrack. [ruby-core:27791] * test/ruby/test_regexp.rb: add a test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regcomp.c (onig_compile): initialize ScanEnv.naruse2010-01-281-1/+1
| | | | | | | | mainly to initialize env->warnings_flag [ruby-dev:40196] * regparse.c (scan_env_clear): clear warnings_flag. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e