From 94a0db11e7f286b9d8432814dcc8b857ce129481 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 26 Sep 2007 09:39:08 +0000 Subject: * 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 --- include/ruby/encoding.h | 4 ++++ include/ruby/intern.h | 2 ++ 2 files changed, 6 insertions(+) (limited to 'include') diff --git a/include/ruby/encoding.h b/include/ruby/encoding.h index f43160a682..1b97b6ab64 100644 --- a/include/ruby/encoding.h +++ b/include/ruby/encoding.h @@ -27,6 +27,7 @@ typedef OnigEncodingType rb_encoding; int rb_enc_to_index(rb_encoding*); +int rb_enc_get_index(VALUE obj); rb_encoding* rb_enc_get(VALUE); rb_encoding* rb_enc_check(VALUE,VALUE); void rb_enc_associate(VALUE, rb_encoding*); @@ -73,8 +74,11 @@ int rb_enc_codelen(int, rb_encoding*); #define rb_enc_isspace(c,enc) ONIGENC_IS_CODE_SPACE(enc,c) #define rb_enc_isdigit(c,enc) ONIGENC_IS_CODE_DIGIT(enc,c) +#define rb_enc_asciicompat(enc) (rb_enc_mbminlen(enc)==1) + int rb_enc_toupper(int c, rb_encoding *enc); int rb_enc_tolower(int c, rb_encoding *enc); ID rb_intern3(const char*, long, rb_encoding*); +int rb_enc_symname_p(const char*, rb_encoding*); #endif /* RUBY_ENCODING_H */ diff --git a/include/ruby/intern.h b/include/ruby/intern.h index 7391845e2d..e06e36892f 100644 --- a/include/ruby/intern.h +++ b/include/ruby/intern.h @@ -516,7 +516,9 @@ VALUE rb_str_append(VALUE, VALUE); VALUE rb_str_concat(VALUE, VALUE); int rb_memhash(const void *ptr, long len); int rb_str_hash(VALUE); +int rb_str_comparable(VALUE, VALUE); int rb_str_cmp(VALUE, VALUE); +VALUE rb_str_equal(VALUE str1, VALUE str2); void rb_str_update(VALUE, long, long, VALUE); VALUE rb_str_inspect(VALUE); VALUE rb_str_dump(VALUE); -- cgit v1.2.3