summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-26 09:39:08 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-26 09:39:08 +0000
commit94a0db11e7f286b9d8432814dcc8b857ce129481 (patch)
tree3ab3cc624ac5e26788e772517645bb312837e1c8 /insns.def
parent62096ef6900717559f091e26b952be0e0c51bc5e (diff)
* encoding.c (rb_enc_check): check for ASCII-compatibilities.
* parse.y (parser_tokadd_string, parser_parse_string, parser_here_document, parser_yylex): set encoding to US-ASCII. * parse.y (rb_enc_symname_p): check if valid with encoding. * parse.y (rb_intern3): let symbols have encoding. * string.c (rb_str_hash): add encoding index. * string.c (rb_str_comparable, rb_str_equal, rb_str_eql): check if compatible encoding. * string.c (sym_inspect): made encoding aware. * insns.def (opt_eq): compare with encoding. * include/ruby/encoding.h (rb_enc_asciicompat): check if ASCII compatible. * include/ruby/encoding.h (rb_enc_get_index): added prototype. * include/ruby/intern.h (rb_str_comparable, rb_str_equal): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def5
1 files changed, 3 insertions, 2 deletions
diff --git a/insns.def b/insns.def
index 1d9ef3d6f2..d31a9656bc 100644
--- a/insns.def
+++ b/insns.def
@@ -1700,13 +1700,14 @@ opt_eq
if (str1 == str2) {
val = Qtrue;
}
- else if (RSTRING_LEN(str1) == RSTRING_LEN(str2) &&
+ else if (!ENCODING_GET(str1) && !ENCODING_GET(str2) &&
+ RSTRING_LEN(str1) == RSTRING_LEN(str2) &&
rb_memcmp(RSTRING_PTR(str1), RSTRING_PTR(str2),
RSTRING_LEN(str1)) == 0) {
val = Qtrue;
}
else {
- val = Qfalse;
+ val = rb_str_equal(str1, str2);
}
}
else {