mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Revert r41728
* string.c (rb_str_inspect): use encoding index macros in encdb.h. It breaks build because encdb.h requires miniruby and modified miniruby requires encdb.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
642b157cc4
commit
ba3dc473c4
2 changed files with 20 additions and 24 deletions
|
@ -1,9 +1,3 @@
|
||||||
Mon Jul 1 23:08:48 2013 NARUSE, Yui <naruse@ruby-lang.org>
|
|
||||||
|
|
||||||
* string.c (rb_str_inspect): use encoding index macros in encdb.h.
|
|
||||||
|
|
||||||
* string.c (str_scrub0): ditto.
|
|
||||||
|
|
||||||
Mon Jul 1 23:07:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
|
Mon Jul 1 23:07:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
|
||||||
|
|
||||||
* template/encdb.h.tmpl: define encoding index macros to use the index
|
* template/encdb.h.tmpl: define encoding index macros to use the index
|
||||||
|
|
38
string.c
38
string.c
|
@ -29,14 +29,6 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ENC_REPLICATE(name, orig)
|
|
||||||
#define ENC_ALIAS(name, orig)
|
|
||||||
#define ENC_DUMMY(name)
|
|
||||||
#define ENC_DEFINE(name)
|
|
||||||
#define ENC_SET_BASE(name, orig)
|
|
||||||
#define ENC_DUMMY_UNICODE(name)
|
|
||||||
#include <encdb.h>
|
|
||||||
|
|
||||||
#define STRING_ENUMERATORS_WANTARRAY 0 /* next major */
|
#define STRING_ENUMERATORS_WANTARRAY 0 /* next major */
|
||||||
|
|
||||||
#undef rb_str_new_cstr
|
#undef rb_str_new_cstr
|
||||||
|
@ -4479,14 +4471,16 @@ VALUE
|
||||||
rb_str_inspect(VALUE str)
|
rb_str_inspect(VALUE str)
|
||||||
{
|
{
|
||||||
rb_encoding *enc = STR_ENC_GET(str);
|
rb_encoding *enc = STR_ENC_GET(str);
|
||||||
int encidx = rb_enc_to_index(enc);
|
|
||||||
const char *p, *pend, *prev;
|
const char *p, *pend, *prev;
|
||||||
char buf[CHAR_ESC_LEN + 1];
|
char buf[CHAR_ESC_LEN + 1];
|
||||||
VALUE result = rb_str_buf_new(0);
|
VALUE result = rb_str_buf_new(0);
|
||||||
rb_encoding *resenc = rb_default_internal_encoding();
|
rb_encoding *resenc = rb_default_internal_encoding();
|
||||||
int unicode_p = rb_enc_unicode_p(enc);
|
int unicode_p = rb_enc_unicode_p(enc);
|
||||||
int asciicompat = rb_enc_asciicompat(enc);
|
int asciicompat = rb_enc_asciicompat(enc);
|
||||||
|
static rb_encoding *utf16, *utf32;
|
||||||
|
|
||||||
|
if (!utf16) utf16 = rb_enc_find("UTF-16");
|
||||||
|
if (!utf32) utf32 = rb_enc_find("UTF-32");
|
||||||
if (resenc == NULL) resenc = rb_default_external_encoding();
|
if (resenc == NULL) resenc = rb_default_external_encoding();
|
||||||
if (!rb_enc_asciicompat(resenc)) resenc = rb_usascii_encoding();
|
if (!rb_enc_asciicompat(resenc)) resenc = rb_usascii_encoding();
|
||||||
rb_enc_associate(result, resenc);
|
rb_enc_associate(result, resenc);
|
||||||
|
@ -4494,7 +4488,7 @@ rb_str_inspect(VALUE str)
|
||||||
|
|
||||||
p = RSTRING_PTR(str); pend = RSTRING_END(str);
|
p = RSTRING_PTR(str); pend = RSTRING_END(str);
|
||||||
prev = p;
|
prev = p;
|
||||||
if (encidx == ENCIDX_UTF_16) {
|
if (enc == utf16) {
|
||||||
const unsigned char *q = (const unsigned char *)p;
|
const unsigned char *q = (const unsigned char *)p;
|
||||||
if (q[0] == 0xFE && q[1] == 0xFF)
|
if (q[0] == 0xFE && q[1] == 0xFF)
|
||||||
enc = rb_enc_find("UTF-16BE");
|
enc = rb_enc_find("UTF-16BE");
|
||||||
|
@ -4503,7 +4497,7 @@ rb_str_inspect(VALUE str)
|
||||||
else
|
else
|
||||||
unicode_p = 0;
|
unicode_p = 0;
|
||||||
}
|
}
|
||||||
else if (encidx == ENCIDX_UTF_32) {
|
else if (enc == utf32) {
|
||||||
const unsigned char *q = (const unsigned char *)p;
|
const unsigned char *q = (const unsigned char *)p;
|
||||||
if (q[0] == 0 && q[1] == 0 && q[2] == 0xFE && q[3] == 0xFF)
|
if (q[0] == 0 && q[1] == 0 && q[2] == 0xFE && q[3] == 0xFF)
|
||||||
enc = rb_enc_find("UTF-32BE");
|
enc = rb_enc_find("UTF-32BE");
|
||||||
|
@ -7750,7 +7744,6 @@ str_scrub0(int argc, VALUE *argv, VALUE str)
|
||||||
{
|
{
|
||||||
int cr = ENC_CODERANGE(str);
|
int cr = ENC_CODERANGE(str);
|
||||||
rb_encoding *enc;
|
rb_encoding *enc;
|
||||||
int encidx;
|
|
||||||
VALUE repl;
|
VALUE repl;
|
||||||
|
|
||||||
if (cr == ENC_CODERANGE_7BIT || cr == ENC_CODERANGE_VALID)
|
if (cr == ENC_CODERANGE_7BIT || cr == ENC_CODERANGE_VALID)
|
||||||
|
@ -7765,7 +7758,6 @@ str_scrub0(int argc, VALUE *argv, VALUE str)
|
||||||
if (rb_enc_dummy_p(enc)) {
|
if (rb_enc_dummy_p(enc)) {
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
encidx = rb_enc_to_index(enc);
|
|
||||||
|
|
||||||
#define DEFAULT_REPLACE_CHAR(str) do { \
|
#define DEFAULT_REPLACE_CHAR(str) do { \
|
||||||
static const char replace[sizeof(str)-1] = str; \
|
static const char replace[sizeof(str)-1] = str; \
|
||||||
|
@ -7790,7 +7782,7 @@ str_scrub0(int argc, VALUE *argv, VALUE str)
|
||||||
replen = RSTRING_LEN(repl);
|
replen = RSTRING_LEN(repl);
|
||||||
rep7bit_p = (ENC_CODERANGE(repl) == ENC_CODERANGE_7BIT);
|
rep7bit_p = (ENC_CODERANGE(repl) == ENC_CODERANGE_7BIT);
|
||||||
}
|
}
|
||||||
else if (encidx == rb_utf8_encindex()) {
|
else if (enc == rb_utf8_encoding()) {
|
||||||
DEFAULT_REPLACE_CHAR("\xEF\xBF\xBD");
|
DEFAULT_REPLACE_CHAR("\xEF\xBF\xBD");
|
||||||
rep7bit_p = FALSE;
|
rep7bit_p = FALSE;
|
||||||
}
|
}
|
||||||
|
@ -7896,20 +7888,30 @@ str_scrub0(int argc, VALUE *argv, VALUE str)
|
||||||
const char *rep;
|
const char *rep;
|
||||||
long replen;
|
long replen;
|
||||||
long mbminlen = rb_enc_mbminlen(enc);
|
long mbminlen = rb_enc_mbminlen(enc);
|
||||||
|
static rb_encoding *utf16be;
|
||||||
|
static rb_encoding *utf16le;
|
||||||
|
static rb_encoding *utf32be;
|
||||||
|
static rb_encoding *utf32le;
|
||||||
|
if (!utf16be) {
|
||||||
|
utf16be = rb_enc_find("UTF-16BE");
|
||||||
|
utf16le = rb_enc_find("UTF-16LE");
|
||||||
|
utf32be = rb_enc_find("UTF-32BE");
|
||||||
|
utf32le = rb_enc_find("UTF-32LE");
|
||||||
|
}
|
||||||
if (!NIL_P(repl)) {
|
if (!NIL_P(repl)) {
|
||||||
rep = RSTRING_PTR(repl);
|
rep = RSTRING_PTR(repl);
|
||||||
replen = RSTRING_LEN(repl);
|
replen = RSTRING_LEN(repl);
|
||||||
}
|
}
|
||||||
else if (encidx == ENCIDX_UTF_16BE) {
|
else if (enc == utf16be) {
|
||||||
DEFAULT_REPLACE_CHAR("\xFF\xFD");
|
DEFAULT_REPLACE_CHAR("\xFF\xFD");
|
||||||
}
|
}
|
||||||
else if (encidx == ENCIDX_UTF_16LE) {
|
else if (enc == utf16le) {
|
||||||
DEFAULT_REPLACE_CHAR("\xFD\xFF");
|
DEFAULT_REPLACE_CHAR("\xFD\xFF");
|
||||||
}
|
}
|
||||||
else if (encidx == ENCIDX_UTF_32BE) {
|
else if (enc == utf32be) {
|
||||||
DEFAULT_REPLACE_CHAR("\x00\x00\xFF\xFD");
|
DEFAULT_REPLACE_CHAR("\x00\x00\xFF\xFD");
|
||||||
}
|
}
|
||||||
else if (encidx == ENCIDX_UTF_32LE) {
|
else if (enc == utf32le) {
|
||||||
DEFAULT_REPLACE_CHAR("\xFD\xFF\x00\x00");
|
DEFAULT_REPLACE_CHAR("\xFD\xFF\x00\x00");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue