aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-06-06 07:40:31 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-06-06 07:40:31 +0000
commitf0ccffd530ff4faafe6f07df94818e807b96f851 (patch)
tree6e79e20879d3ea025b6eda42b0084f56789772d0
parent7c9c33e9add999d2c9a9073de5130936e4124c9c (diff)
downloadruby-f0ccffd530ff4faafe6f07df94818e807b96f851.tar.gz
* eval.c (rb_load): should check if tainted even when wrap is
specified. * regex.c (re_compile_pattern): too much optimization for the cases like /(.|a)b/. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--eval.c7
-rw-r--r--parse.y2
-rw-r--r--regex.c16
4 files changed, 12 insertions, 23 deletions
diff --git a/ChangeLog b/ChangeLog
index d4d4e5de07..afd35b5d55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,14 @@
+Wed Jun 6 16:11:06 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * eval.c (rb_load): should check if tainted even when wrap is
+ specified.
+
Wed Jun 6 14:34:27 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
- * parse.y (aref_args): "*arg" should always be expanded by REXPAND.
+ * parse.y (mrhs_basic): "*arg" should always be expanded by REXPAND.
+
+ * regex.c (re_compile_pattern): too much optimization for the
+ cases like /(.|a)b/.
Tue Jun 5 23:58:43 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
diff --git a/eval.c b/eval.c
index c4d298421c..a1df116c1a 100644
--- a/eval.c
+++ b/eval.c
@@ -5167,12 +5167,7 @@ rb_load(fname, wrap)
NODE *saved_cref = ruby_cref;
TMP_PROTECT;
- if (wrap) {
- StringValue(fname);
- }
- else {
- SafeStringValue(fname);
- }
+ SafeStringValue(fname);
file = rb_find_file(RSTRING(fname)->ptr);
if (!file) {
rb_raise(rb_eLoadError, "No such file to load -- %s", RSTRING(fname)->ptr);
diff --git a/parse.y b/parse.y
index 5721886f40..c67a51096a 100644
--- a/parse.y
+++ b/parse.y
@@ -1147,7 +1147,7 @@ mrhs_basic : args ',' arg
| tSTAR arg
{
value_expr($2);
- $$ = NEW_RESTARGS($2);
+ $$ = NEW_REXPAND($2);
}
primary : literal
diff --git a/regex.c b/regex.c
index 2ebaa4c1ff..39e65da9b9 100644
--- a/regex.c
+++ b/regex.c
@@ -2381,21 +2381,7 @@ re_compile_pattern(pattern, size, bufp)
laststart++;
EXTRACT_NUMBER_AND_INCR(mcnt, laststart);
- if (mcnt == 4 && *laststart == anychar) {
- switch ((enum regexpcode)laststart[1]) {
- case jump_n:
- case finalize_jump:
- case maybe_finalize_jump:
- case jump:
- case jump_past_alt:
- case dummy_failure_jump:
- bufp->options |= RE_OPTIMIZE_ANCHOR;
- break;
- default:
- break;
- }
- }
- else if (*laststart == charset || *laststart == charset_not) {
+ if (*laststart == charset || *laststart == charset_not) {
p0 = laststart;
mcnt = *++p0;
p0 += mcnt+1;