History

2003/11/12: Version 1.9.5

2003/11/12: [test] success in ruby 1.8.0 (2003-08-08) [i386-cygwin].
2003/11/12: [test] success in ruby 1.8.1 (2003-11-11) [i686-linux].
2003/11/12: [spec] add definition of REG_INEFFECTIVE_META_CHAR.
2003/11/11: [API]  remove regex_set_meta_char_escape().
2003/11/11: [dist] add a sample program sample/sql.c.
2003/11/11: [new]  add variable meta character.
                   regex_set_meta_char_escape(), regex_set_meta_char()
2003/11/11: [spec] add syntax op. REG_SYN_OP_VARIABLE_META_CHARS.
2003/11/11: [spec] rename REG_SYN_OP_ESC_CAPITAL_Q_QUOTE to
                   REG_SYN_OP2_ESC_CAPITAL_Q_QUOTE,
                   REG_SYN_OP_QMARK_GROUP_EFFECT to 
                   REG_SYN_OP2_QMARK_GROUP_EFFECT.
2003/11/06: [impl] define THREAD_PASS as rb_thread_schedule() in Ruby mode.
2003/11/05: [spec] add syntax behavior REG_SYN_WARN_REDUNDANT_NESTED_REPEAT.
2003/11/05: [spec] rename REG_SYN_WARN_FOR_CC_OP_NOT_ESCAPED to
                   REG_SYN_WARN_CC_OP_NOT_ESCAPED.
2003/11/04: [new]  add regex_set_warn_func() and regex_set_verb_warn_func().
2003/10/30: [new]  add regex_name_to_backref_number().
                   (for multiplex definition name, see sample/names.c)
2003/10/30: [spec] add name_end and reg argument to callback function of
                   regex_foreach_name().  (see sample/names.c)
2003/10/29: [spec] add syntax behavior REG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME.
                   add error code REGERR_MULTIPLEX_DEFINED_NAME.
2003/10/14: [dist] modify sample/simple.c.
2003/10/03: [bug]  (thanks nobu)  [ruby-dev:21472]
                   sub-anchor of optimization map info was wrong
                   in concat_left_node_opt_info().
                   ex. /^(x?y)/ = "xy" fail. 

2003/09/17: Version 1.9.4

2003/09/17: [spec] change specification of char-class range in ignore case mode
                   follows with Ruby 1.8(2003-09-17).
                   ex. /[H-c]/i ==> (H-Z, 0x5b-0x60, a-c)/i
                                ==> H-Z, h-z, 0x5b-0x60, a-c, A-C
2003/09/16: [bug]  (thanks Guy Decoux)
                   remove env->option == option check in parse_effect().
                   change env->option for dynamic option in parse_exp().
                   (ex. bad match /(?i)(?-i)a/ =~ "A")
2003/09/12: [spec] rename REG_SYN_ALLOW_RANGE_OP_IN_CC to
                   REG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC,
                   REG_SYN_ESCAPE_IN_CC to REG_SYN_BACKSLASH_ESCAPE_IN_CC.
2003/09/11: [bug]  change to IS_SYNTAX_OP2 at REG_SYN_OP2_ESC_GNU_BUF_ANCHOR.
2003/09/09: [spec] rename REG_SYN_OP2_ESC_M_BAR_META to
                   REG_SYN_OP2_ESC_CAPITAL_M_BAR_META,
                   REG_SYN_OP_ESC_Q_QUOTE to REG_SYN_OP_ESC_CAPITAL_Q_QUOTE,
                   REG_SYN_OP_ESC_SUBEXP to REG_SYN_OP_ESC_LPAREN_SUBEXP,
                   REG_SYN_OP_ESC_BUF_ANCHOR to REG_SYN_OP_ESC_AZ_BUF_ANCHOR,
                   REG_SYN_OP_ESC_GNU_BUF_ANCHOR to
                   REG_SYN_OP2_ESC_GNU_BUF_ANCHOR,
                   REG_SYN_OP_ESC_CONTROL_CHAR to REG_SYN_OP_ESC_CONTROL_CHARS,
                   REG_SYN_OP_ESC_WORD to REG_SYN_OP_ESC_W_WORD,
                   REG_SYN_OP_ESC_WORD_BEGIN_END to
                   REG_SYN_OP_ESC_LTGT_WORD_BEGIN_END,
                   REG_SYN_OP_ESC_WORD_BOUND to REG_SYN_OP_ESC_B_WORD_BOUND,
                   REG_SYN_OP_ESC_WHITE_SPACE to REG_SYN_OP_ESC_S_WHITE_SPACE,
                   REG_SYN_OP_ESC_DIGIT to REG_SYN_OP_ESC_D_DIGIT,
                   REG_SYN_OP_CC to REG_SYN_OP_BRACKET_CC,
                   REG_SYN_OP2_CCLASS_SET to REG_SYN_OP2_CCLASS_SET_OP,
                   REG_SYN_CONTEXT_INDEP_OPS to
                   REG_SYN_CONTEXT_INDEP_REPEAT_OPS,
                   REG_SYN_CONTEXT_INVALID_REPEAT_OPS to
                   REG_SYN_CONTEXT_INVALID_REPEAT_OPS.
                   add REG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR.
2003/09/08: [spec] rename REG_SYN_OP_ANYCHAR to REG_SYN_OP_DOT_ANYCHAR,
                   REG_SYN_OP_0INF to REG_SYN_OP_ASTERISK_ZERO_INF,
                   REG_SYN_OP_ESC_0INF to REG_SYN_OP_ESC_ASTERISK_ZERO_INF,
                   REG_SYN_OP_1INF to REG_SYN_OP_PLUS_ONE_INF,
                   REG_SYN_OP_ESC_1INF to REG_SYN_OP_ESC_PLUS_ONE_INF,
                   REG_SYN_OP_0INF to REG_SYN_OP_QMARK_ZERO_ONE,
                   REG_SYN_OP_ESC_0INF to REG_SYN_OP_ESC_QMARK_ZERO_ONE,
                   REG_SYN_OP_INTERVAL to REG_SYN_OP_BRACE_INTERVAL,
                   REG_SYN_OP_ESC_INTERVAL to REG_SYN_OP_ESC_BRACE_INTERVAL,
                   REG_SYN_OP_SUBEXP to REG_SYN_OP_LPAREN_SUBEXP,
                   REG_SYN_OP_ALT to REG_SYN_OP_VBAR_ALT,
                   REG_SYN_OP_ESC_ALT to REG_SYN_OP_ESC_VBAR_ALT,
                   REG_SYN_OP_NON_GREEDY to REG_SYN_OP_QMARK_NON_GREEDY,
                   REG_SYN_OP_SUBEXP_EFFECT to REG_SYN_OP_QMARK_GROUP_EFFECT,
                   REG_SYN_OP2_POSSESSIVE_{REPEAT,INTERVAL} to
                   REG_SYN_OP2_PLUS_POSSESSIVE_{REPEAT,INTERVAL},
                   REG_SYN_OP2_SUBEXP_CALL to REG_SYN_OP2_ESC_G_SUBEXP_CALL,
                   REG_SYN_OP2_NAMED_GROUP to REG_SYN_OP2_QMARK_LT_NAMED_GROUP
                   and REG_SYN_OP2_ESC_K_NAMED_BACKREF.
2003/09/02: [tune] call reduce_nested_qualifier() after disabling capture for
                   no-name group in noname_disable_map().
                   ex. /(a+)*(?<name>...)/
2003/09/02: [impl] include <stdio.h> is forgotten to erase in regcomp.c.
2003/09/01: [dist] update doc/RE and doc/RE.ja.
2003/08/26: [bug]  (thanks Guy Decoux)
                   should not double free node at the case TK_CC_CC_OPEN
                   in parse_char_class().  

2003/08/19: Version 1.9.3

2003/08/19: [inst] change re.c.180.patch.
2003/08/19: [impl] rename 'list of captures' to 'capture history'.
2003/08/19: [dist] add doc/RE.ja. (Japanese)
2003/08/19: [new]  add regex_copy_syntax().
2003/08/19: [spec] rename REG_SYN_OP2_ATMARK_LIST_OF_CAPTURES to
                   REG_SYN_OP2_ATMARK_CAPTURE_HISTORY.
2003/08/18: [spec] (thanks nobu)
                   don't use IMPORT in oniguruma.h and onigposix.h.
2003/08/18: [impl] (thanks nobu) change error output to stdout in testconv.rb. 
2003/08/18: [inst] (thanks nobu) lacked $(srcdir) in Makefile.in.  
2003/08/18: [bug]  REG_MBLEN_TABLE[SJIS][0xFD-0xFF] should be 1.
2003/08/18: [bug]  (thanks nobu) mbctab_sjis[0x80] should be 0.
2003/08/18: [bug]  (thanks nobu)
                   single/multi-byte decision was wrong in parse_char_class().
                   add regex_wc2mblen().
                   should not set fetched to 1 in TK_RAW_BYTE case.
2003/08/18: [bug]  should update BitSet in the case inc_n >= 0
                   in add_wc_range_to_buf().
2003/08/13: [bug]  change re.c.180.patch for fix rb_reg_to_s() in re.c.
2003/08/11: [bug]  should clear region->list in regex_region_resize().

2003/08/08: Version 1.9.2

2003/08/08: [test] success in ruby 1.8.0 (2003-08-08) on Windows 2000
                   VC++ 6.0 and Cygwin.
2003/08/08: [impl] don't define macro vsnprintf for WIN32 platform,
                   because definition is added in win32\win32.h.
2003/08/08: [test] success in ruby 1.8.0 and ruby 1.6.8(2003-08-03) on Linux.
2003/08/08: [dist] change re.c.180.patch and re.c.168.patch.
2003/08/08: [new]  (thanks akr)
                   implemented list of captures. (?@...), (?@<name>...)
2003/08/07: [dist] add sample/listcap.c.
2003/08/06: [bug]  OP_MEMORY_END_PUSH_REC case in match_at().
                   renewal of mem_start_stk[] should be after
                   STACK_PUSH_MEM_END() call.
2003/07/29: [new]  add regex_get_encoding(), regex_get_options() and
                   regex_get_syntax().
2003/07/25: [spec] (thanks akr)
                   change group(...) to shy-group(?:...) if named group is 
                   used in the pattern.
                   add REG_SYN_CAPTURE_ONLY_NAMED_GROUP.
2003/07/24: [spec] rename REG_OPTION_CAPTURE_ONLY_NAMED_GROUP to
                   REG_OPTION_DONT_CAPTURE_GROUP.
                   add REG_OPTION_CAPTURE_GROUP.
2003/07/17: [spec] rename REG_SYN_OP2_NAMED_SUBEXP to REG_SYN_OP2_NAMED_GROUP.
2003/07/17: [spec] add REGERR_EMPTY_GROUP_NAME.
2003/07/17: [spec] rename REGERR_INVALID_SUBEXP_NAME
                       to REGERR_INVALID_CHAR_IN_GROUP_NAME.
2003/07/17: [spec] restrict usable chars of group name to alphabet, digit,
                   '_' or multibyte-char in fetch_name(). [ruby-dev:20706]
2003/07/16: [impl] minor change of sample/names.c.
2003/07/14: [impl] rename USE_NAMED_SUBEXP to USE_NAMED_GROUP.
2003/07/14: [bug]  add fetch_name() for USE_NAMED_SUBEXP off case.
2003/07/14: [API]  add regex_number_of_names().
2003/07/08: [impl] change error message for undefined group number call.
                       'undefined group reference: /(a)\g<2>/'
                   --> 'undefined group <2> reference: /(a)\g<2>/'
2003/07/08: [dist] modify doc/RE.
2003/07/07: [impl] OP_SET_OPTION is not needed in compiled code.
                   add IS_DYNAMIC_OPTION() to regint.h.
2003/07/07: [spec] called group should not ignore outside option (?i:...).
                   ex. /(?i:(?<n>(a)\2)){0}\g<n>/.match("aA")
                   add opcode OP_BACKREFN_IC and OP_BACKREF_MULTI_IC.
                   set option status to effect memory in optimize_node_left().
2003/07/07: [impl] add opcode OP_ANYCHAR_ML, OP_ANYCHAR_ML_STAR and
                   OP_ANYCHAR_ML_START_PEEK_NEXT.
2003/07/07: [bug]  (thanks nobu) REG_MBLEN_TABLE[SJIS][0x80] should be 1. 
2003/07/07: [spec] rename REG_SYN_OP_QUOTE to REG_SYN_OP_ESC_Q_QUOTE.

2003/07/04: Version 1.9.1

2003/07/04: [new]  add REG_OPTION_CAPTURE_ONLY_NAMED_GROUP. (thanks .NET)
2003/07/04: [spec] check mbuf member in the case of
                   REG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC in parse_char_class().
2003/07/04: [spec] typo REG_SYN_WARN_FOR_CC_OP_NOT_ESCAPEED.
                   should be REG_SYN_WARN_FOR_CC_OP_NOT_ESCAPED.
2003/07/04: [bug]  conflict values on REG_SYN_WARN_FOR_CC_OP_NOT_ESCAPEED and
                   REG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC.  (thanks nobu)
2003/07/03: [spec] add REG_SYN_OP_ESC_CONTROL_CHAR flag.
2003/07/03: [spec] remove REG_SYN_OP_ESC_OCTAL3 and REG_SYN_OP_ESC_X_HEX2
                   flag from RegSyntaxGnuRegex.
2003/07/03: [spec] remove REG_SYN_OP_NON_GREEDY flag from RegSyntaxGnuRegex.
2003/07/02: [dist] fix doc/RE.
2003/07/01: [impl] add config flag USE_VARIABLE_SYNTAX.
                   (turn off variable syntax on Ruby)
2003/07/01: [spec] add syntax behavior REG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND.
2003/06/30: [spec] allow different length top-level alternatives
                   in look-behind.    ex. (?<=abc|abcd), (?<!a|bc)
2003/06/26: [spec] add option REG_OPTION_NEGATE_SINGLELINE.
2003/06/26: [spec] should default on REG_OPTION_SINGLELINE
                   for REG_SYNTAX_PERL and REG_SYNTAX_JAVA.
2003/06/26: [impl] add options member to RegStntaxType.
2003/06/26: [spec] don't change the meaning of '\Z' for REG_OPTION_SINGLELINE.
2003/06/25: [dist] don't use option REG_NEWLINE for sample/posix.c.
2003/06/25: [dist] modify testconv.rb.
                   should match and convert double quoted string data.
                   ex. x(/\ca/, "\001", 0, 1)
2003/06/25: [impl] add REG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL and
                   REG_SYN_OP2_ESC_M_BAR_META.
2003/06/25: [impl] add REG_SYN_OP_ESC_OCTAL3 and REG_SYN_OP_ESC_X_HEX2.
2003/06/24: [impl] add REG_SYN_OP2_ESC_V_VTAB. (\v is VTAB)
2003/06/24: [bug]  should invert REG_OPTION_SINGLELINE flag
                   in REG_SYN_OP2_OPTION_PERL.
2003/06/24: [impl] add REG_SYN_OP2_OPTION_PERL and REG_SYN_OP2_OPTION_RUBY.
                   meaning of (?m) and (?s) are depend on syntax.

2003/06/20: Version 1.9.0

2003/06/20: [spec] \Q...\E is not effective on REG_SYNTAX_RUBY. (thanks akr)
2003/06/19: [inst] rename regex.h to oniguruma.h.
2003/06/18: [impl] change REG_EXTERN setting condition. (__CYGWIN__)
2003/06/18: [bug]  return wrong result UTF-8 case in regex_mb2wc().
2003/06/18: [impl] add REG_SYN_OP2_POSSESSIVE_INTERVAL.  a{n,m}+
2003/06/18: [new]  add REG_SYNTAX_JAVA.
2003/06/18: [spec] add REG_SYN_OP_QUOTE.
2003/06/18: [spec] add op2 member to RegSyntaxType.
                   rename some REG_SYN_OP_XXX to REG_SYN_OP2.
2003/06/16: [new]  Perl-like quotation operator \Q, \E.
2003/06/16: [spec] should not control ignore case mode by escaped char.
                   ex. /\J/i =~ "j", /[\J]/i =~ "j"    (same as Perl)
2003/06/13: [bug]  modify onigposix.h.
2003/06/13: [bug]  should use -DIMPORT for link with DLL in win32/Makefile.
2003/06/13: [dist] add sample/names.c
2003/06/12: [bug]  range should be from - 1 in not_wc_range_buf().
2003/06/12: [spec] should warn for '-' before '&&' operator in char-class.
2003/06/12: [new]  add REG_SYNTAX_PERL.
2003/06/12: [spec] add syntax behavior REG_SYN_WARN_FOR_CC_OP_NOT_ESCAPEED.
2003/06/12: [spec] invalid POSIX bracket should be error.   ex. [[:upper :]]
2003/06/11: [new]  char-class in char-class (as Java(TM)).
2003/06/11: [spec] change AND operator in char-class from &&[..] to &&. 
2003/06/04: [spec] {n,m}+ should not be possessive operator.
                   ex. a{3}+ should be (?:a{3})+
2003/06/03: [bug]  should compare strings with min-length in is_not_included().
2003/06/03: [impl] automatic possessivate optimization.  a*b ==> (?>a*)b
                   (thanks Jeffrey E. F. Friedl)
2003/06/02: [impl] remove multibyte-BitSet for OP_CCLASS_MB/OP_CCLASS_MB_NOT.
2003/05/30: [new]  char class intersection operator &&[...] like Java(TM).
                   (thanks akr)
2003/05/30: [bug]  should use bbuf_free() for CClassNode in regex_node_free().
2003/05/29: [bug]  wrong usage of syntax REG_SYN_ALLOW_EMPTY_RANGE_IN_CC.
                   /[d-a]/ should be error.
2003/05/28: [impl] optimize stop-backtrack compiled code.
                   (/(?>a*)/, /(?>\w+)/ etc...)
                   add OP_POP opcode.
2003/05/28: [new]  possessive repeat operator. (?+, *+, ++, {n,m}+)
2003/05/27: [spec] '-' at beginning of char-class should be warn only if
                   it is start of range.  (ex. /[--a]/)
2003/05/27: [spec] should not warn for right bracket at beginning of pattern.
                   ex. /]aaa/
2003/05/27: [spec] change CCEND_ESC_WARN() from VERB_WARNING() to WARNING().
2003/05/27: [spec] /[]aaa/ should be empty char-class error.
                   /[]aaa]/ should be warn for 'without backslash'.
                   (add char_exist_check() in regparse.c)
2003/05/26: [bug]  OP_REPEAT in recursive subexp call.
                   ex. /(?<n>(a|b\g<n>c){3,5})/.match("baaaaca") => "baaaaca"
                       was wrong result. (should be "aaaa")
2003/05/26: [impl] add num_call member to regex_t.
2003/05/26: [impl] add repeat_range member to regex_t.
                   (for delete upper,lower members from StackType.u.repeat)
2003/05/26: [bug]  change print_names() to external regex_print_names().
2003/05/26: [tune] change OP_NULL_CHECK_END process in match_at().
2003/05/26: [spec] change CCEND_ESC_WARN() from WARNING() to VERB_WARNING().
2003/05/26: [spec] remove POSIXLINE option. (?p:...)
                   (be made the same as Ruby.)
2003/05/22: [spec] use OP_NULL_CHECK_XXX only if repeat is infinite.
                   prev. /(?:()|()){0,10}\1\2/ =~ ""  ==> FAIL
                   now   /(?:()|()){0,10}\1\2/ =~ ""  ==> MATCH

2003/05/22: [impl] change target_empty setting condition in setup_tree().
2003/05/19: [impl] avoid zero length repeat optimization.  (thanks matz)
                   /()*/ ==> /()?/, /()+/ ==> /()/ etc...
2003/05/19: [impl] minor changes for gcc -Wall. (-DREG_DEBUG_STATISTICS case)
2003/05/19: [spec] rename regex_foreach_names() to regex_foreach_name().
2003/05/16: [new]  add --with-statistics option to configure.
2003/05/16: [bug]  move RegOpInfo[] definition to regint.h.
2003/05/16: [new]  add regex_version().

2003/05/14: Version 1.8.6

2003/05/14: [bug]  use _vsnprintf() on Win32.
2003/05/14: [spec] define USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE.
                   (/\n$/ =~ "\n", /\n\Z/ =~ "\n") [ruby-dev:20125]
2003/05/14: [impl] minor changes for gcc -Wall.
2003/05/14: [impl] add string.h check in AC_CHECK_HEADERS().
2003/05/13: [impl] minor changes for gcc -Wall.
2003/05/13: [impl] add regex_snprintf_with_pattern().
2003/05/13: [spec] add warning for char class meta character without escape
                   in Ruby mode ('[', '-', ']').
2003/05/13: [impl] define WARNING() and VERB_WARNING() in regint.h.
2003/05/13: [bug]  correct is_code_ascii() for /[[:ascii:]]/.
2003/05/12: [dist] add regular expression document (doc/RE).
2003/05/12: [spec] specification of $(END_LINE) was made the same as Ruby 1.8.
                   [ruby-dev:20130]     (thanks matz)
2003/05/12: [memo] shifted to Subversion(version 0.21.0) from CVS.

2003/03/19: Version 1.8.5

2003/03/19: [impl] change REG_EXTERN definition.   (thanks nobu)
2003/03/19: [impl] abbreviation for long error_par in regex_error_code_to_str().
2003/03/18: [dist] change re.c.XXX.patch for GNU regex API changes.
2003/03/18: [spec] change API regex_new(), regex_recompile() and
                   regex_error_code_to_str().
                   change API re_compile_pattern() and re_recompile_pattern().
2003/03/18: [spec] replace REGERR_END_PATTERN_AT_GROUP_{COMMENT|OPTION} to
                   REGERR_END_PATTERN_IN_GROUP.
2003/03/17: [impl] should free err_arg.
2003/03/17: [bug]  mistake(high -> to) in add_wc_range_to_buf().
2003/03/17: [spec] add err_arg argument to regex_new() and regex_recompile().
                   for detail error message.  (thanks akr)

2003/03/12: Version 1.8.4

2003/03/12: [tune] use cached value of effect node in get_min_match_length().
2003/03/12: [bug]  escaped alphabet should be TK_RAW_BYTE
                   in fetch_token() and fetch_token_in_cc().
2003/03/12: [spec] change named backref and subexp call format.
                   backref: \k<name>, call: \g<name>     (thanks akr)
2003/03/11: [inst] add regparse.[ch] in win32/Makefile.
2003/03/11: [bug]  if UNALIGNED_WORD_ACCESS isn't setted
                   then compile error in unset_addr_list_fix().  (thanks knu)
2003/03/10: [impl] divide regcomp.c to regcomp.c, regparse.c and regparse.h.
2003/03/10: [bug]  should handle multi-byte code name in fetch_name().
2003/03/10: [spec] remove REGERR_TABLE_FOR_IGNORE_CASE_IS_NOT_SETTED.
2003/03/10: [spec] support POSIX API option REG_NOSUB.
                   add comp_options member to POSIX API regex_t.

2003/03/10: Version 1.8.3

2003/03/10: [bug]  can not compile with Ruby 1.6.8.
                   (inconsistent st.h with 1.6 and 1.8)
                   use hash table on Ruby 1.8 only.
2003/03/10: [spec] forbid to use '\' in group name.
2003/03/08: [impl] remove check_backref_number().
2003/03/08: [bug]  called group in 0-repeat should not be eliminated from
                   compile code.  ex. /(?*n)(?<n>){0}/   (thanks akr)
                   add is_refered member to QualifierNode.
2003/03/07: [impl] use hash table(st.[ch]) for implementation of name table.
                   (enable on Ruby in default)
2003/03/07: [new]  add regex_foreach_names().
2003/03/06: [impl] add member reg->stack_pop_level.
2003/03/06: [impl] add operator OP_MEMORY_START and member reg->backtrack_mem.
2003/03/06: [bug]  if REG_OPTION_FIND_LONGEST or REG_OPTION_NOT_EMPTY,
                   should handle backtrack of MEM_END.
                   add OP_MEMORY_END_PUSH and OP_MEMORY_END_PUSH_REC.
2003/03/06: [impl] rename OP_MEMORY_END_PUSH to OP_MEMORY_END_MARK.
2003/03/06: [spec] change error messages.
2003/03/06: [tune] add tiny_pop check in STACK_POP.

2003/03/05: Version 1.8.2

2003/03/05: [impl] use cache info in EFFECT_MEMORY case
                   in optimize_node_info().
2003/03/05: [impl] add EFFECT_MEMORY node reference count check
                   in optimize_node_left().
2003/03/05: [impl] add min-len, max-len, char-len cache in EffectNode.
2003/03/05: [spec] allow to call in look behind. ex. /(?<=(?*a))/
2003/03/05: [bug]  forgotten N_ANCHOR case in check_backref_number(),
                   subexp_inf_recursive_check_trav() etc...
2003/03/05: [impl] rename USE_ONIGURUMA_EXTENSION to USE_SBMB_CLASS.
2003/03/04: [impl] add CALL-node info in optimize_node_left().
2003/03/04: [spec] prohibit left recursion of subexp call.   ex. (?<n>|(?*n)a)
                   add subexp_inf_recursive_check_trav().
2003/03/04: [spec] rename REG_SYN_STRICT_CHECK_BACKREF_NUMBER
                   to REG_SYN_STRICT_CHECK_BACKREF
2003/03/03: [bug]  /(?<n>a(?*n)|)/ isn't infinite recursion.
                   fix N_LIST case in subexp_recursive_check(). (thanks akr)
2003/03/03: [bug]  /(?<n>|(?*n))+/ segmentation fault.
                   should re-allocate in unset_addr_list_add(). (thanks akr)

2003/03/01: Version 1.8.1

2003/03/01: [bug]  change STACK_GET_MEM_START() and STACK_PUSH_MEM_END().
2003/03/01: [new]  add reg_name_to_group_numbers() to POSIX API.
2003/03/01: [impl] use OP_MEMORY_END_PUSH in callable subexp compiled code
                   only if subexp is recursive.
2003/03/01: [spec] rename regex_name_to_backrefs() to
                   regex_name_to_group_numbers().
2003/02/28: [impl] use function stack_double() instead of macro.
2003/02/28: [new]  subexp call. (?*name)    (thanks akr)
2003/02/28: [spec] add match stack limit check. (MATCH_STACK_LIMIT_SIZE)
2003/02/28: [impl] check recursive subexp call.
2003/02/28: [impl] add opcode OP_MEMORY_END_PUSH for callable subexp.
2003/02/28: [impl] add opcode OP_CALL, OP_RETURN.
                   add stack type STK_CALL_FRAME, STK_RETURN, STK_MEM_END.
2003/02/26: [spec] add new syntax behavior REG_SYN_STRICT_CHECK_BACKREF_NUMBER.
                   if it is setted, then error /(\1)/, /\1(..)/ etc...
2003/02/26: [spec] if backref number is greater than max group number,
                   then return compile error. (REGERR_INVALID_BACKREF_NUMBER)
2003/02/26: [tune] bad implemented N_ALT case in get_min_match_length().
2003/02/26: [dist] auto update testc.c and win32/testc.c in dist target.
2003/02/26: [impl] add -win option to testconv.rb.
2003/02/25: [spec] allow to assign same name to different group.
                   add OP_BACKREF_MULTI.
2003/02/24: [impl] reduce redundant repeat of empty target. 
	           ex. /()*/ ==> /()?/, /()+/ ==> /()/, /(?:)+/ ==> //
2003/02/24: [impl] change condition in regex_is_allow_reverse_match().
2003/02/24: [impl] convert i(/../, ...) functions in testconv.rb.
2003/02/24: [impl] change name table struct.

2003/02/22: Version 1.8.0

2003/02/22: [new]  named subexp, named back reference.  (thanks akr)
                   define: (?<name>...), back-ref: \g<name>
2003/02/22: [impl] use str_node_can_be_split().
2003/02/21: [dist] add sample/posix.c
2003/02/21: [spec] rename some error code symbols.
2003/02/21: [spec] max number of multibyte ranges(255) is small.
                   255 --> 1000.   (thanks MoonWolf)
2003/02/20: [new]  supported Basic Regular Expression(BRE) in POSIX API.
                   (REG_EXTENDED option: Extended RE)
2003/02/20: [new]  variable syntax.

2003/02/12: Version 1.7.2

2003/02/12: [bug]  mismatch /\?a/i.match('?A').
                   check raw value in scan_make_node() and scan_backslash().
                   (thanks Nobu)
2003/02/12: [impl] rename 'max_mem' to 'num_mem' in regex_t.
2003/02/12: [impl] rename 'code' to 'enc' in regex_t.
2003/02/12: [spec] remove transtable argument in regex_new and regex_recompile.
                   remove transtable member in regex_t.
2003/02/10: [inst] change backup file suffix name from '.orig' to '.ruby_orig'.
                   (win32/Makefile)
2003/02/10: [spec] number check in scan_char_class() ignore-case mode.
                   ex. /[\x58-\x64]/i
2003/02/10: [impl] don't use OP_MEMORY_END_PUSH (and STK_MEM_END).
2003/02/10: [impl] lift up head_exact value from child qualifier node to parent.
2003/02/10: [tune] change stack type values.
2003/02/10: [dist] add HISTORY.
2003/02/08: [tune] change stack type values.
2003/02/08: [tune] add STACK_BASE_CHECK().
2003/02/08: [tune] add STACK_PUSH_ENSURED().
2003/02/08: [dist] change contents of doc/API.
2003/02/07: [inst] change backup file suffix name from '.orig' to '.ruby_orig'.
2003/02/07: [spec] range in char-class should be same spec. with Ruby
                   in ignore-case mode. (ex. /[A-c]/i == /[a-c]/i)
                   (thanks MoonWolf)
2003/02/07: [spec] [!--] should be allowed.    (thanks MoonWolf)
2003/02/07: [dist] refresh re.c.180.patch for re.c (2003-02-06).

2003/02/07: Version 1.7.1

2003/02/07: [impl] check first byte of string in ignore-case mode.
                   (get_head_exact_node())
2003/02/07: [impl] remove redundant statements in setup_tree().
2003/02/06: [new]  create Win32 DLL.
2003/02/06: [impl] use P_() macro for function prototype.
2003/02/06: [impl] add HAVE_PROTOTYPE, HAVE_STDARG_PROTOTYPES in
                   configure.in and config.h.in.
2003/02/06: [spec] /[0-9-a]/ is allowed as usual char '-' and 'a' in Ruby.
                   add USE_BETTER_COMPATIBILITY_FOR_ORIGINAL_REGEX in
                   regint.h.   (thanks MoonWolf)
2003/02/06: [spec] rename REG_MBCTYPE_XXXX to REG_ENCODING_XXXX in onigposix.h.
2003/02/05: [spec] rename MBCTYPE_XXXX to REG_MBCTYPE_XXXX in onigposix.h.
2003/02/05: [spec] add POSIX API error REG_EONIG_THREAD to onigposix.h.
2003/02/05: [dist] add .cvsignore file.

2003/02/04: Version 1.7

2003/02/04: [bug]  typo miss in regex_region_copy().
2003/02/04: [impl] change THREAD_PASS macro. (regint.h)
2003/02/04: [dist] add API document file doc/API.
2003/02/04: [tune] if sub_anchor has ANCHOR_BEGIN_LINE then 
                   set REG_OPTIMIZE_EXACT_BM in set_optimize_exact_info().
2003/02/04: [spec] reimplement regex_clone() and it is obsoleted.
2003/02/04: [bug]  add REGERR_OVER_THREAD_PASS_LIMIT_COUNT
                   to regerror.c regposix.c.
2003/02/03: [bug]  Hankaku-Kana may be second byte in Shift_JIS
                   regex_is_allow_reverse_match().
2003/02/03: [impl] add optimization type REG_OPTIMIZE_EXACT_BM_NOT_REV.
                   remove exact_allow_reverse_match member in regex_t.
2003/02/03: [impl] add exact_allow_reverse_match member in regex_t.
2003/02/03: [impl] compile-search conflict in regex_search() is handled.
2003/02/01: [tune] decrease regex_region_clear() calling from regex_search().
2003/02/01: [tune] remove region argument from match_at().
2003/01/31: [tune] don't use strlen() in regexec() and regcomp().
2003/01/31: [tune] decrease regex_reduce_chain() calling in regex_search().
2003/01/31: [bug]  STRING_CMP() in regexec.c was wrong in ignore-case.
2003/01/31: [impl] convert to lower-case char at string compile time.
                   change SBTRANSCMP() in regexec.c.
2003/01/31: [impl] rename TTRANS() to TOLOWER().
2003/01/30: [bug]  .c.o --> .c.obj in win32\Makefile.
2003/01/30: [impl] add -DNOT_RUBY to Makefile.in.
                   NOT_RUBY is refered in regint.h for escape double
                   including config.h.
2003/01/30: [impl] when string hasn't case ambiguity, don't compile
                   to ignore case opcode.
2003/01/29: [impl] add SJIS, UTF-8 test_sb() test.
2003/01/29: [dist] add INSTALL-RUBY file.
2003/01/28: [test] success in Cygwin, Ruby 1.8.0 (2003-01-27).
2003/01/24: [inst] add rback target to Makefile.in.
2003/01/24: [impl] change SBCMP() -> IS_NEWLINE() in match_at().
2003/01/23: [impl] add encoding arg to scan_xxxx_number().
2003/01/23: [impl] rename WCInt to WCINT.
2003/01/22: [bug]  POSIX API regexec() was not thread safe.
                   remove region member from POSIX regex_t.
            [new]  add search time option REG_OPTION_POSIX_REGION.
                   (region argument is treated as regmatch_t[] type)
                   speed up regexec().
2003/01/22: [memo] start CVS entry in my box.

2003/01/21: Version 1.6

2003/01/21: [test] Mac OS X 10.1, Ruby 1.8.0 (2003-01-20)
2003/01/20: [impl] add UTF-8 check to test.rb.   (thanks UENO Katsuhiro)
2003/01/18: [impl] change REGION_NOTPOS to REG_REGION_NOTPOS in regex.h.
2003/01/17: [dist] add sample/simple.c.
2003/01/17: [inst] add configure option --with-rubydir.
2003/01/17: [bug]  bad implemeted POSIX API options.
                   default:     /./ not match "\n", anchor not match "\n"
                   REG_NEWLINE: /./ not match "\n", anchor match "\n"
2003/01/16: [impl] rewrite POSIX API regexec() for speed up.
2003/01/16: [impl] add region member to POSIX regex_t struct.
2003/01/16: [inst] rename library file from 'libregex.a' to 'libonig.a'.
2003/01/15: [dist] add testc.c to distribution file.
2003/01/15: [test] success in 'make rtest/ctest/ptest' on Windows 2000.
2003/01/15: [bug]  change '/' to \' in win32/Makefile.
2003/01/14: [test] success in Ruby make test on Windows 2000.
                   VC++6.0, Ruby 1.6.8 (2003-01-12)
2003/01/14: [inst] change Makefile.in and win32/Makefile.
2003/01/11: [inst] changes for Win32 platform. (regint.h, reggnu.c, regcomp.c)
2003/01/11: [dist] add win32 directory. (config.h, Makefile, testc.c)
2003/01/10: [inst] add onigposix.h to install target. (Makefile.in)
2003/01/10: [bug]  lacked a comma in ESTRING[]. (regposerr.c)
2003/01/10: [bug]  local variable name was wrong. buf -> tbuf (regerror())
2003/01/10: [spec] remove REG_RUBY_M17N case from onigposix.h and regposix.c.

2003/01/09: Version 1.5

2003/01/09: [inst] replace Ruby re.c.XXX.patch files. (166 -> 168, 172 -> 180)
2003/01/09: [new]  implement POSIX API.   (thanks knu)
                   (onigposix.h, regposix.c, regposerr.c)
2003/01/08: [spec] remove REGERR_END_PATTERN_AFTER_BACKSLASH in regex.h.
2003/01/08: [spec] region arg can be NULL in regex_search() and regex_match().

2003/01/08: Version 1.4

2003/01/08: [inst] add test program converter (test.rb -> testc.c).
2003/01/08: [bug]  move GET_WCINT() from regcomp.c to regint.h.
2003/01/07: [inst] add new test script (test.rb).
2002/12/30: [bug]  wrong merge in multibyte mode (alt_merge_opt_exact_info()).
2002/12/28: [inst] add rtest target to Makefile.in.
2002/12/28: [bug]  /\xfe/.match("\xfe") mismatch in multibyte mode.
                   add "raw" flag arg to concat_opt_exact_info_str().
2002/12/25: [bug]  check condition was wrong in alt_merge_opt_map_info().
2002/12/25: [impl] add threshold_len check in regex_search().
2002/12/23: [bug]  prec-read in alternative (/a|(?=z).f/.match("zf") => nil)
2002/12/23: [bug]  \G in alternative (/a|\Gz/.match("bza") => "z").
                   add start member in MatchArg. (regexec.c)
2002/12/21: [impl] **** rewrite all optimization process. ****
2002/12/16: [impl] remove node subtype EFFECT_EMPTY.
2002/12/12: [impl] reconstruct node types. (regcomp.c)
2002/12/11: [impl] add regerror.c
2002/12/10: [bug]  [ruby-dev:19042] (thanks Nobu)
                   anchor(\G etc...) influenced outside of "|". (/a|\Gb/)
2002/11/30: [bug]  [ruby-dev:18966] (thanks Nobu)
                   char-class(\S, [^\s] etc...) optimize map-info was wrong.
2002/11/29: [bug]  infinite loop on NULL-pointer str search (regex_search()).
                   (thanks matz)
2002/11/29: [bug]  change static -> extern (regex_chain_reduce()).
2002/11/29: [bug]  change encoding to RegDefaultCharEncoding
                   in re_recompile_pattern(). (adapt to re.c)
2002/04/24: [spec] USE_ONIGURUMA_EXTENSION is disabled in default.
2002/04/24: [new]  add searching time option: REG_OPTION_NOTBOL/NOTEOL.
                   add searching time option argument to regex_search() and
                   regex_match(). (prepare for POSIX API)
2002/04/20: [impl] divide regex.c file into regcomp.c, regexec.c, reggnu.c
                   and regint.h.
2002/04/09: [impl] move IS_MULTILINE() to outside of loop in OP_ANYCHAR_STAR.
2002/04/08: [impl] don't use OP_REPEAT operator for '??'.
2002/04/06: [impl] reduce redundant nested repeat operators(?,*,+,??,*?,+?).
                   ex. (?:a*)?, (?:a??)* etc..
2002/04/06: [spec] should not warn for /(?:a?)+?/.
2002/04/04: [spec] should allow fixed length alternative and repeat pattern
                   in look-behind. ex. /(?<=(a|b){3})/  (thanks Guy Decoux)
2002/04/02: [spec] should warn for /(?:a+)?/ and /(?:a*)??/.  (thanks akr)

2002/04/01: Version 1.3

2002/04/01: [dist] add COPYING.
2002/03/30: [spec] warn redundant nested repeat operator
                   in Ruby verbose mode.  ex. (?:a*)?
2002/03/30: [spec] nested repeat operator error check should be 
                   same with GNU regex.             (thanks Guy Decoux)
2002/03/30: [new]  add \x{hexadecimal-wide-char}.   (thanks matz)
2002/03/27: [bug]  MBCTYPE_XXX symbol values should be same with GNU regex.
2002/03/27: [impl] add THREAD_ATOMIC to regex_clone(), regex_init(), regex_end().
2002/03/25: [spec] if encoding is utf-8, allow combination of singlebyte and
                   multibyte code range in char class.
                   (cancelled 2002/04/01: for M17N compatibility)
2002/03/25: [dist] description of the license condition is added to README.
2002/03/23: [bug]  should set all bits of reg->mem_stats,
                   if REG_OPTION_FIND_LONGEST or REG_OPTION_NOT_EMPTY.
2002/03/23: [new]  add a new option REG_OPTION_NOT_EMPTY.
2002/03/20: [spec] allow incompleted left brace as an usual char.
                   ex. /{/, /({)/, /a{2,3/ etc...
2002/03/20: [impl] serialize integer in bytecode.
                   (switch by UNALIGNED_WORD_ACCESS in regex.c)
2002/03/20: [impl] change re_mbcinit() for REG_RUBY_M17N.
2002/03/19: [impl] word alignment of char class multi-byte code ranges.
2002/03/19: [impl] replace OP_EXACTMB4N with OP_EXACTMB3N.
2002/03/19: [bug]  OP_CCLASS_MB_NOT process in matchAt() is wrong.
2002/03/19: [new]  add re_mbctab[] for Ruby extension library compatibility.
2002/03/19: [spec] allow nested repeat operator, if operator is {n,m} type.
2002/03/19: [new]  add REG_IS_PATTERN_ERROR(ecode) in regex.h
2002/03/18: [spec] /[a-b-c]/ should be error.
2002/03/18: [bug]  /[\w-a]/ should be error.        (thanks Guy Decoux)
2002/03/18: [bug]  /[\]/ should be error.           (thanks Guy Decoux)
2002/03/18: [bug]  /()*/ etc.. should not be error. (thanks Guy Decoux)
2002/03/18: [spec] /a{1}*/ should not be error.     (thanks Guy Decoux)
2002/03/18: [bug]  ab{2}{3} was interpreded to (?:a(?:b{2})){3}
                   (thanks Guy Decoux)
2002/03/18: [bug]  abort /(?i)*a/ etc...            (thanks Guy Decoux)
2002/03/18: [bug]  abort /a|*/,/a|{1}/ etc...       (thanks Guy Decoux)

2002/03/13: Version 1.2

2002/03/13: [test] success in rubicon/builtin/AllBuiltinTests.rb.
                   (thanks rubicon)
2002/03/13: [bug]  OP_EXACTMBN process in matchAt() is wrong.
2002/03/13: [bug]  start argument of BackwardSearchRange() is wrong.
2002/03/12: [spec] change function name style from CamelCase
                   to underline_separation. (includes API)
2002/03/12: [bug]  if pattern has nested null-check, cause infinite loop.
                   correct STACK_NULL_CHECK() macro. (thanks Guy Decoux)
2002/03/11: [bug]  it is wrong that four numbers to continue as
                   an octal value in scanBackSlash(). ex. /\0111/
                   (thanks matz)
2002/03/11: [new]  \k (single-byte word char), \K (multi-byte char).
2002/03/09: [inst] add two targets to Makefile.in (166 and 172).
2002/03/09: [spec] decrease REG_MAX_BACKREF_NUM, REG_MAX_REPEAT_NUM
                   values.
2002/03/08: [spec] allow use of "\A"(begin-buf) in look-behind.
2002/03/08: [impl] add a new opcode OP_PUSH_IF_PEEK_NEXT.
2002/03/08: [impl] add a new opcode OP_ANYCHAR_STAR_PEEK_NEXT.
2002/03/07: [spec] prohibit use of capture group "(...)"
                   in negative look-behind.
2002/03/07: [inst] add configure.in, config.h.in, Makefile.in.
2002/03/07: [impl] call Init_REGEX_STAT() in RegexInit().
2002/03/07: [spec] less length string match with negative look-behind.
                   ex. /(?<!XXX)a/.match("Xa").    (thanks Nobu)
2002/03/06: [impl] expand repeated string, if expanded length <= 100.
                   ex. /(?:abc){10}/
2002/03/06: [new]  add a symbol REG_TRANSTABLE_USE_DEFAULT in regex.h.
2002/03/06: [impl] rename RegDefaultCharCode to RegDefaultCharEncoding.
2002/03/06: [bug]  if pattern has NULL(\000) char, infinite loop happens 
                   in ScanMakeNode(). (beware of strchr(). thanks Nobu)
2002/03/06: [bug]  range argument of ForwardSearchRange() is wrong.
                   ex. /\A.a/, /\G.a/ mismatched with "aa". (thanks Nobu)
2002/03/05: [new]  add RegexMatch() API. rename regexMatch() to matchAt().
2002/03/05: [impl] change function definition style.
2002/03/05: [impl] abolish use of macro symbol which name begin with underline.
2002/03/04: [bug]  make up a break-statement in compileTree().
                   (compile error on Mac OS X 10.1.3)

2002/03/04: Version 1.1

2002/03/04: [impl] replace STK_BOTTOM with STK_ALT.
2002/03/02: [impl] add new opcode OP_FINISH and new stack type
                   STK_BOTTOM for (little bit) speed up STACK_POP.
2002/03/02: [impl] add new opcode OP_EXACT1_IC, OP_EXACTN_IC
                   for compile time ignore case check.
                   remove opcode OP_EXACT1_RAW, OP_EXACTN_RAW.
2002/03/02: [impl] add OpTime info to statistical data.
2002/02/28: [bug]  sub_anchor($) in ForwardSearch() and BackwardSearch().
                   ex. /$\x0az/.match("\nz")
2002/02/28: [new]  look-behind (?<=pattern), (?<!pattern).
2002/02/27: [bug]  use StackIndex instead of StackType* for realloc problem.
2002/02/27: [impl] use m17n_codepoint() as mb2wc() in REG_RUBY_M17N.
2002/02/27: [spec] undefined POSIX bracket /[[:xyz:]]/ should be syntax error.
2002/02/26: [bug]  ex. /$*/, /[a-]/, /((?i)a)b/   (thanks matz)

2002/02/25: Version 1.0 (first release)

--
[bug:  bug fix]
[API:  API change/new/delete]
[new:  new feature]
[spec: specification change]
[impl: implementation change]
[tune: tune for speed up]
[inst: changes for installation]
[dist: distribution change]
[test: test]
[memo: memo]
--
<create tag>
svn copy http://localhost/repos/trunk/oniguruma http://localhost/repos/tags/oniguruma/X.X.X -m "onigdXXXXXXXX"
