ruby-changes:2536
From: ko1@a...
Date: 27 Nov 2007 11:21:50 +0900
Subject: [ruby-changes:2536] akr - Ruby:r14027 (trunk): * include/ruby/encoding.h, encoding.c, re.c, string.c, parse.y:
akr 2007-11-27 11:21:17 +0900 (Tue, 27 Nov 2007) New Revision: 14027 Modified files: trunk/ChangeLog trunk/encoding.c trunk/include/ruby/encoding.h trunk/parse.y trunk/re.c trunk/string.c Log: * include/ruby/encoding.h, encoding.c, re.c, string.c, parse.y: rename ENC_CODERANGE_SINGLE to ENC_CODERANGE_7BIT. rename ENC_CODERANGE_MULTI to ENC_CODERANGE_8BIT. Because single byte 8bit character, such as Shift_JIS 1byte katakana, is represented by ENC_CODERANGE_MULTI even if it is not multi byte. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/string.c?r1=14027&r2=14026 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?r1=14027&r2=14026 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14027&r2=14026 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/include/ruby/encoding.h?r1=14027&r2=14026 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/re.c?r1=14027&r2=14026 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/encoding.c?r1=14027&r2=14026 Index: encoding.c =================================================================== --- encoding.c (revision 14026) +++ encoding.c (revision 14027) @@ -407,12 +407,12 @@ cr2 = rb_enc_str_coderange(str2); if (cr1 != cr2) { /* may need to handle ENC_CODERANGE_BROKEN */ - if (cr1 == ENC_CODERANGE_SINGLE) return rb_enc_from_index(idx2); - if (cr2 == ENC_CODERANGE_SINGLE) return rb_enc_from_index(idx1); + if (cr1 == ENC_CODERANGE_7BIT) return rb_enc_from_index(idx2); + if (cr2 == ENC_CODERANGE_7BIT) return rb_enc_from_index(idx1); } - if (cr1 == ENC_CODERANGE_SINGLE) return rb_enc_from_index(0); + if (cr1 == ENC_CODERANGE_7BIT) return rb_enc_from_index(0); } - if (cr1 == ENC_CODERANGE_SINGLE && + if (cr1 == ENC_CODERANGE_7BIT && rb_enc_asciicompat(enc = rb_enc_from_index(idx2))) return enc; } Index: include/ruby/encoding.h =================================================================== --- include/ruby/encoding.h (revision 14026) +++ include/ruby/encoding.h (revision 14027) @@ -26,11 +26,11 @@ #define ENC_CODERANGE_MASK (FL_USER12|FL_USER13) #define ENC_CODERANGE_UNKNOWN 0 -#define ENC_CODERANGE_SINGLE FL_USER12 -#define ENC_CODERANGE_MULTI FL_USER13 +#define ENC_CODERANGE_7BIT FL_USER12 +#define ENC_CODERANGE_8BIT FL_USER13 #define ENC_CODERANGE_BROKEN (FL_USER12|FL_USER13) #define ENC_CODERANGE(obj) (RBASIC(obj)->flags & ENC_CODERANGE_MASK) -#define ENC_CODERANGE_ASCIIONLY(obj) (ENC_CODERANGE(obj) == ENC_CODERANGE_SINGLE) +#define ENC_CODERANGE_ASCIIONLY(obj) (ENC_CODERANGE(obj) == ENC_CODERANGE_7BIT) #define ENC_CODERANGE_SET(obj,cr) (RBASIC(obj)->flags = \ (RBASIC(obj)->flags & ~ENC_CODERANGE_MASK) | (cr)) #define ENC_CODERANGE_CLEAR(obj) ENC_CODERANGE_SET(obj,0) Index: re.c =================================================================== --- re.c (revision 14026) +++ re.c (revision 14027) @@ -725,7 +725,7 @@ /* ignorecase status */ if (rb_reg_fixed_encoding_p(re)) { if (ENCODING_GET(re) != rb_enc_get_index(str) && - rb_enc_str_coderange(str) != ENC_CODERANGE_SINGLE) { + rb_enc_str_coderange(str) != ENC_CODERANGE_7BIT) { rb_raise(rb_eArgError, "character encodings differ"); } } Index: ChangeLog =================================================================== --- ChangeLog (revision 14026) +++ ChangeLog (revision 14027) @@ -1,3 +1,11 @@ +Tue Nov 27 11:14:57 2007 Tanaka Akira <akr@f...> + + * include/ruby/encoding.h, encoding.c, re.c, string.c, parse.y: + rename ENC_CODERANGE_SINGLE to ENC_CODERANGE_7BIT. + rename ENC_CODERANGE_MULTI to ENC_CODERANGE_8BIT. + Because single byte 8bit character, such as Shift_JIS 1byte katakana, + is represented by ENC_CODERANGE_MULTI even if it is not multi byte. + Tue Nov 27 10:45:45 2007 Koichi Sasada <ko1@a...> * eval.c (rb_method_missing): fix stack trace. Index: string.c =================================================================== --- string.c (revision 14026) +++ string.c (revision 14027) @@ -92,7 +92,7 @@ }\ } while (0) -#define is_ascii_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_SINGLE) +#define is_ascii_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT) VALUE rb_fs; @@ -105,7 +105,7 @@ rb_encoding *enc = rb_enc_get(str); if (!rb_enc_asciicompat(enc)) { - cr = ENC_CODERANGE_MULTI; + cr = ENC_CODERANGE_8BIT; ENC_CODERANGE_SET(str, cr); return cr; } @@ -113,12 +113,12 @@ const char *p = RSTRING_PTR(str); const char *e = p + RSTRING_LEN(str); - cr = ENC_CODERANGE_SINGLE; + cr = ENC_CODERANGE_7BIT; while (p < e) { int c = (unsigned char)*p; if (!isascii(c)) { - cr = ENC_CODERANGE_MULTI; + cr = ENC_CODERANGE_8BIT; break; } p++; @@ -134,7 +134,7 @@ rb_encoding *enc = rb_enc_get(str); if (rb_enc_asciicompat(enc) && - rb_enc_str_coderange(str) == ENC_CODERANGE_SINGLE) { + rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT) { char *ptr = RSTRING_PTR(str); long len = RSTRING_LEN(str); long i; Index: parse.y =================================================================== --- parse.y (revision 14026) +++ parse.y (revision 14027) @@ -271,7 +271,7 @@ #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),parser->enc) #define STR_NEW3(p,n,e,has8,hasmb) parser_str_new2((p),(n),(e),(has8),(hasmb)) #define STR_ENC(m) ((m)?parser->enc:rb_enc_from_index(0)) -#define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_SINGLE) +#define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT) #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), STR_ENC(mb)) #ifdef YYMALLOC @@ -4835,8 +4835,8 @@ * Set coderange bit flags based on the presence of 8-bit and * multi-byte characters in the string */ - int coderange = ENC_CODERANGE_SINGLE; - if (hasmb) coderange = ENC_CODERANGE_MULTI; + int coderange = ENC_CODERANGE_7BIT; + if (hasmb) coderange = ENC_CODERANGE_8BIT; else if (has8bit) coderange = ENC_CODERANGE_UNKNOWN; /* @@ -4845,7 +4845,7 @@ * string is in the ASCII subset, and we just use the ASCII encoding * instead. */ - if ((coderange == ENC_CODERANGE_SINGLE) && rb_enc_asciicompat(enc)) + if ((coderange == ENC_CODERANGE_7BIT) && rb_enc_asciicompat(enc)) enc = rb_enc_default(); return parser_str_new(p, n, enc, coderange); @@ -5676,7 +5676,7 @@ } while (!whole_match_p(eos, len, indent)); } else { - /* int mb = ENC_CODERANGE_SINGLE, *mbp = &mb;*/ + /* int mb = ENC_CODERANGE_7BIT, *mbp = &mb;*/ int has8bit=0, hasmb=0; rb_encoding *enc = parser->enc; newtok(); @@ -7100,7 +7100,7 @@ break; } - mb = ENC_CODERANGE_SINGLE; + mb = ENC_CODERANGE_7BIT; do { if (!ISASCII(c)) mb = ENC_CODERANGE_UNKNOWN; tokadd_mbchar(c); @@ -7155,7 +7155,7 @@ } } - if (mb == ENC_CODERANGE_SINGLE && lex_state != EXPR_DOT) { + if (mb == ENC_CODERANGE_7BIT && lex_state != EXPR_DOT) { const struct kwtable *kw; /* See if it is a reserved word. */ @@ -8466,7 +8466,7 @@ int opt, idx; rb_char_to_option_kcode(c, &opt, &idx); if (idx != ENCODING_GET(str) && ENCODING_GET(str) && - rb_enc_str_coderange(str) != ENC_CODERANGE_SINGLE) { + rb_enc_str_coderange(str) != ENC_CODERANGE_7BIT) { compile_error(PARSER_ARG "regexp encoding option '%c' differs from source encoding '%s'", c, rb_enc_name(rb_enc_get(str))); @@ -8919,7 +8919,7 @@ int idx = 0; ID id; - if (rb_enc_str_coderange(str) != ENC_CODERANGE_SINGLE) { + if (rb_enc_str_coderange(str) != ENC_CODERANGE_7BIT) { idx = rb_enc_get_index(str); } id = rb_intern3(RSTRING_PTR(str), RSTRING_LEN(str), -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml