1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* re.c (rb_reg_expr_str): use \xHH instead of \OOO.

* regerror.c (to_ascii): ditto.
  (onig_snprintf_with_pattern): ditto.
  (onig_snprintf_with_pattern): ditto.

* string.c (rb_str_inspect): ditto.
  (rb_str_dump): ditto.

* parse.y (parser_yylex): ditto.

* ruby.c (proc_options): ditto.

* file.c (rb_f_test): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2007-12-09 21:48:05 +00:00
parent 08eb58d3dd
commit f4592d7bb0
9 changed files with 28 additions and 11 deletions

View file

@ -1,3 +1,20 @@
Mon Dec 10 06:44:47 2007 Tanaka Akira <akr@fsij.org>
* re.c (rb_reg_expr_str): use \xHH instead of \OOO.
* regerror.c (to_ascii): ditto.
(onig_snprintf_with_pattern): ditto.
(onig_snprintf_with_pattern): ditto.
* string.c (rb_str_inspect): ditto.
(rb_str_dump): ditto.
* parse.y (parser_yylex): ditto.
* ruby.c (proc_options): ditto.
* file.c (rb_f_test): ditto.
Mon Dec 10 06:41:00 2007 Tanaka Akira <akr@fsij.org> Mon Dec 10 06:41:00 2007 Tanaka Akira <akr@fsij.org>
* re.c (rb_reg_names): new method Regexp#names. * re.c (rb_reg_names): new method Regexp#names.

2
file.c
View file

@ -3486,7 +3486,7 @@ rb_f_test(int argc, VALUE *argv)
rb_raise(rb_eArgError, "unknown command ?%c", cmd); rb_raise(rb_eArgError, "unknown command ?%c", cmd);
} }
else { else {
rb_raise(rb_eArgError, "unknown command ?\\%03o", cmd); rb_raise(rb_eArgError, "unknown command ?\\x%02x", cmd);
} }
return Qnil; /* not reached */ return Qnil; /* not reached */
} }

View file

@ -7070,7 +7070,7 @@ parser_yylex(struct parser_params *parser)
default: default:
if (!parser_is_identchar()) { if (!parser_is_identchar()) {
rb_compile_error(PARSER_ARG "Invalid char `\\%03o' in expression", c); rb_compile_error(PARSER_ARG "Invalid char `\\x%02x' in expression", c);
goto retry; goto retry;
} }

2
re.c
View file

@ -259,7 +259,7 @@ rb_reg_expr_str(VALUE str, const char *s, long len)
else if (!rb_enc_isspace(c, enc)) { else if (!rb_enc_isspace(c, enc)) {
char b[8]; char b[8];
sprintf(b, "\\%03o", c); sprintf(b, "\\x%02x", c);
rb_str_buf_cat(str, b, 4); rb_str_buf_cat(str, b, 4);
} }
else { else {

View file

@ -197,7 +197,7 @@ static int to_ascii(OnigEncoding enc, UChar *s, UChar *end,
code = ONIGENC_MBC_TO_CODE(enc, p, end); code = ONIGENC_MBC_TO_CODE(enc, p, end);
if (code >= 0x80) { if (code >= 0x80) {
if (len + 5 <= buf_size) { if (len + 5 <= buf_size) {
sprintf((char* )(&(buf[len])), "\\%03o", sprintf((char* )(&(buf[len])), "\\x%02x",
(unsigned int )(code & 0377)); (unsigned int )(code & 0377));
len += 5; len += 5;
} }
@ -346,7 +346,7 @@ onig_snprintf_with_pattern(buf, bufsize, enc, pat, pat_end, fmt, va_alist)
int blen; int blen;
while (len-- > 0) { while (len-- > 0) {
sprintf((char* )bs, "\\%03o", *p++ & 0377); sprintf((char* )bs, "\\x%02x", *p++ & 0377);
blen = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs); blen = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs);
bp = bs; bp = bs;
while (blen-- > 0) *s++ = *bp++; while (blen-- > 0) *s++ = *bp++;
@ -355,7 +355,7 @@ onig_snprintf_with_pattern(buf, bufsize, enc, pat, pat_end, fmt, va_alist)
} }
else if (!ONIGENC_IS_CODE_PRINT(enc, *p) && else if (!ONIGENC_IS_CODE_PRINT(enc, *p) &&
!ONIGENC_IS_CODE_SPACE(enc, *p)) { !ONIGENC_IS_CODE_SPACE(enc, *p)) {
sprintf((char* )bs, "\\%03o", *p++ & 0377); sprintf((char* )bs, "\\x%02x", *p++ & 0377);
len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs); len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs);
bp = bs; bp = bs;
while (len-- > 0) *s++ = *bp++; while (len-- > 0) *s++ = *bp++;

2
ruby.c
View file

@ -863,7 +863,7 @@ proc_options(int argc, char **argv, struct cmdline_options *opt)
} }
else { else {
rb_raise(rb_eRuntimeError, rb_raise(rb_eRuntimeError,
"invalid option -\\%03o (-h will show valid options)", "invalid option -\\x%02x (-h will show valid options)",
(int)(unsigned char)*s); (int)(unsigned char)*s);
} }
} }

View file

@ -2971,7 +2971,7 @@ rb_str_inspect(VALUE str)
escape_codepoint: escape_codepoint:
for (q = p-n; q < p; q++) { for (q = p-n; q < p; q++) {
s = buf; s = buf;
sprintf(buf, "\\%03o", *q & 0377); sprintf(buf, "\\x%02x", *q & 0377);
while (*s) { while (*s) {
str_cat_char(result, *s++, enc); str_cat_char(result, *s++, enc);
} }
@ -3083,7 +3083,7 @@ rb_str_dump(VALUE str)
} }
else { else {
*q++ = '\\'; *q++ = '\\';
sprintf(q, "%03o", c&0xff); sprintf(q, "x%02x", c&0xff);
q += 3; q += 3;
} }
} }

View file

@ -37,7 +37,7 @@ class TestRegexp < Test::Unit::TestCase
end end
def test_to_s def test_to_s
assert_equal '(?-mix:\000)', Regexp.new("\0").to_s assert_equal '(?-mix:\x00)', Regexp.new("\0").to_s
end end
def test_union def test_union

View file

@ -444,7 +444,7 @@ class TestString < Test::Unit::TestCase
def test_dump def test_dump
a= S("Test") << 1 << 2 << 3 << 9 << 13 << 10 a= S("Test") << 1 << 2 << 3 << 9 << 13 << 10
assert_equal(S('"Test\\001\\002\\003\\t\\r\\n"'), a.dump) assert_equal(S('"Test\\x01\\x02\\x03\\t\\r\\n"'), a.dump)
end end
def test_dup def test_dup