summaryrefslogtreecommitdiffstats
path: root/re.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-03-16 09:25:45 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-03-16 09:25:45 +0000
commitea1ca23ba1de9dd616fe26c0610e51744f454fd3 (patch)
treeb27fc8161f4f1f52fd4c0b453861b60c452d259b /re.c
parent730f66be7514b26ee7cb2256e0ca8e1846469087 (diff)
downloadruby-ea1ca23ba1de9dd616fe26c0610e51744f454fd3.tar.gz
ruby-ea1ca23ba1de9dd616fe26c0610e51744f454fd3.tar.xz
ruby-ea1ca23ba1de9dd616fe26c0610e51744f454fd3.zip
* eval.c (rb_call0): reorganize "return" event post.
* eval.c (return_jump): no need to post "return" event here. * object.c (str_to_id): raise ArgumentError for NUL containing strings. * parse.y (primary): wrong var node was set for NODE_LAMBDA. [ruby-core:04555] * re.c (make_regexp): need to free internal regexp structure when compilation fails. [ruby-talk:133228] * parse.y (bv_decl): remove initialize rule from block local variable declaration. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 're.c')
-rw-r--r--re.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/re.c b/re.c
index 937eac66b..10fe8c68d 100644
--- a/re.c
+++ b/re.c
@@ -657,6 +657,7 @@ make_regexp(s, len, flags, ce)
r = onig_compile(rp, (UChar* )s, (UChar* )(s + len), &einfo);
if (r != 0) {
+ onig_free(rp);
(void )onig_error_code_to_str((UChar* )err, r, &einfo);
rb_reg_raise(s, len, err, 0, ce);
}
@@ -1893,11 +1894,12 @@ rb_reg_quote(str)
/*
* call-seq:
- * Regexp.escape(str) => new_str
- * Regexp.quote(str) => new_str
+ * Regexp.escape(str) => a_str
+ * Regexp.quote(str) => a_str
*
* Escapes any characters that would have special meaning in a regular
- * expression. For any string,
+ * expression. Returns a new escaped string, or self if no characters are
+ * escaped. For any string,
* <code>Regexp.escape(<i>str</i>)=~<i>str</i></code> will be true.
*
* Regexp.escape('\\*?{}.') #=> \\\\\*\?\{\}\.