summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkosako <kosako@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-05-15 12:39:25 +0000
committerkosako <kosako@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-05-15 12:39:25 +0000
commit8c5f9ef2eab6fe7e9f0531d0c670d053616d69be (patch)
tree5eb308c55edeb0acc744e74b19ece69f7cdc006c
parent2d80e59b76d67617e08d9f6f2c455c2255fc2ecc (diff)
don't use onig_recompile()
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--re.c18
-rw-r--r--version.h6
3 files changed, 18 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 9d1c12f0aa..246e8b3ca3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Mon May 15 21:37:12 2006 K.Kosako <sndgk393 AT ybb.ne.jp>
+
+ * re.c (rb_reg_prepare_re): don't use onig_recompile().
+
Sat May 13 16:14:05 2006 Tanaka Akira <akr@m17n.org>
* lib/pp.rb (PP.mcall): new method.
diff --git a/re.c b/re.c
index e1ca4a00c7..08df5b38f3 100644
--- a/re.c
+++ b/re.c
@@ -906,7 +906,7 @@ rb_reg_prepare_re(VALUE re)
char err[ONIG_MAX_ERROR_MESSAGE_LEN];
int r;
OnigErrorInfo einfo;
- regex_t *reg;
+ regex_t *reg, *reg2;
UChar *pattern;
if (FL_TEST(re, KCODE_FIXED))
@@ -914,14 +914,18 @@ rb_reg_prepare_re(VALUE re)
rb_reg_check(re);
reg = RREGEXP(re)->ptr;
pattern = ((UChar*)RREGEXP(re)->str);
- r = onig_recompile(reg, pattern, pattern + RREGEXP(re)->len,
- reg->options, onigenc_get_default_encoding(),
- OnigDefaultSyntax, &einfo);
- if (r != 0) {
- (void )onig_error_code_to_str((UChar*)err, r, &einfo);
- rb_reg_raise(pattern, RREGEXP(re)->len, err, re, Qfalse);
+ r = onig_new(&reg2, (UChar* )pattern,
+ (UChar* )(pattern + RREGEXP(re)->len),
+ reg->options, onigenc_get_default_encoding(),
+ OnigDefaultSyntax, &einfo);
+ if (r) {
+ onig_error_code_to_str((UChar*)err, r, &einfo);
+ rb_reg_raise((char* )pattern, RREGEXP(re)->len, err, re, Qfalse);
}
+
+ RREGEXP(re)->ptr = reg2;
+ onig_free(reg);
}
}
diff --git a/version.h b/version.h
index 6a71869a73..315780b2e8 100644
--- a/version.h
+++ b/version.h
@@ -1,14 +1,14 @@
#define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2006-05-13"
+#define RUBY_RELEASE_DATE "2006-05-15"
#define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20060513
+#define RUBY_RELEASE_CODE 20060515
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_YEAR 2006
#define RUBY_RELEASE_MONTH 5
-#define RUBY_RELEASE_DAY 13
+#define RUBY_RELEASE_DAY 15
RUBY_EXTERN const char ruby_version[];
RUBY_EXTERN const char ruby_release_date[];