mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/nkf/nkf.c (rb_nkf_convert), ext/nkf/nkf-utf8/nkf.c
(nkf_enc_without_bom): BOM is not a part of encodings. * ext/nkf/nkf.c (Init_nkf), ext/nkf/nkf-utf8/nkf.c (options): UTF-{16,32} without endian have no sense. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
75aa81b79d
commit
7992fabaf4
3 changed files with 24 additions and 32 deletions
32
ChangeLog
32
ChangeLog
|
@ -1,32 +1,10 @@
|
||||||
Tue May 20 12:13:50 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Tue May 20 13:20:51 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* ruby.c (proc_options, process_options): --dump option.
|
* ext/nkf/nkf.c (rb_nkf_convert), ext/nkf/nkf-utf8/nkf.c
|
||||||
|
(nkf_enc_without_bom): BOM is not a part of encodings.
|
||||||
|
|
||||||
Tue May 20 11:36:06 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
* ext/nkf/nkf.c (Init_nkf), ext/nkf/nkf-utf8/nkf.c (options):
|
||||||
|
UTF-{16,32} without endian have no sense.
|
||||||
* include/ruby/ruby.h (PRI[diouxX]VALUE): printf format for VALUE.
|
|
||||||
|
|
||||||
* gc.c (assign_heap_slot): suppress a warning.
|
|
||||||
|
|
||||||
Tue May 20 03:42:43 2008 Koichi Sasada <ko1@atdot.net>
|
|
||||||
|
|
||||||
* eval.c, vm_insnhelper.c: fix cref in instance_eval
|
|
||||||
and cvar_base search protocol.
|
|
||||||
|
|
||||||
* bootstraptest/test_knownbug.rb, test_eval.rb: move soleved test
|
|
||||||
and add new tests.
|
|
||||||
|
|
||||||
* test/ruby/test_eval.rb: fix tests for spec.
|
|
||||||
|
|
||||||
Tue May 20 01:43:44 2008 Koichi Sasada <ko1@atdot.net>
|
|
||||||
|
|
||||||
* bootstraptest/test_knownbug.rb: fix a test.
|
|
||||||
"block_given?" returns true if "yield" can be used.
|
|
||||||
|
|
||||||
Tue May 20 01:07:19 2008 Yusuke Endoh <mame@tsg.ne.jp>
|
|
||||||
|
|
||||||
* parse.y (assignable_gen): when "self = 1" was evalueted, unnecessary
|
|
||||||
error message was output, which might cause null pointer access.
|
|
||||||
|
|
||||||
Mon May 19 23:32:12 2008 Koichi Sasada <ko1@atdot.net>
|
Mon May 19 23:32:12 2008 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
|
|
|
@ -693,6 +693,20 @@ static int nkf_enc_find_index(const char *name)
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static nkf_encoding *nkf_enc_without_bom(nkf_encoding *enc)
|
||||||
|
{
|
||||||
|
int idx;
|
||||||
|
switch (enc->id) {
|
||||||
|
case UTF_8_BOM: idx = UTF_8; break;
|
||||||
|
case UTF_16BE_BOM: idx = UTF_16BE; break;
|
||||||
|
case UTF_16LE_BOM: idx = UTF_16LE; break;
|
||||||
|
case UTF_32BE_BOM: idx = UTF_32BE; break;
|
||||||
|
case UTF_32LE_BOM: idx = UTF_32LE; break;
|
||||||
|
default: return enc;
|
||||||
|
}
|
||||||
|
return &nkf_encoding_table[idx];
|
||||||
|
}
|
||||||
|
|
||||||
static nkf_encoding *nkf_enc_find(const char *name)
|
static nkf_encoding *nkf_enc_find(const char *name)
|
||||||
{
|
{
|
||||||
int idx = -1;
|
int idx = -1;
|
||||||
|
@ -5897,8 +5911,7 @@ void options(unsigned char *cp)
|
||||||
} else if (cp[0] == 'B') {
|
} else if (cp[0] == 'B') {
|
||||||
cp++;
|
cp++;
|
||||||
} else {
|
} else {
|
||||||
output_encoding = nkf_enc_from_index(enc_idx);
|
goto utf_no_endian;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
if (cp[0] == '0'){
|
if (cp[0] == '0'){
|
||||||
cp++;
|
cp++;
|
||||||
|
@ -5907,6 +5920,7 @@ void options(unsigned char *cp)
|
||||||
: (output_endian == ENDIAN_LITTLE ? UTF_32LE : UTF_32BE);
|
: (output_endian == ENDIAN_LITTLE ? UTF_32LE : UTF_32BE);
|
||||||
} else {
|
} else {
|
||||||
output_bom_f = TRUE;
|
output_bom_f = TRUE;
|
||||||
|
utf_no_endian:
|
||||||
enc_idx = enc_idx == UTF_16
|
enc_idx = enc_idx == UTF_16
|
||||||
? (output_endian == ENDIAN_LITTLE ? UTF_16LE_BOM : UTF_16BE_BOM)
|
? (output_endian == ENDIAN_LITTLE ? UTF_16LE_BOM : UTF_16BE_BOM)
|
||||||
: (output_endian == ENDIAN_LITTLE ? UTF_32LE_BOM : UTF_32BE_BOM);
|
: (output_endian == ENDIAN_LITTLE ? UTF_32LE_BOM : UTF_32BE_BOM);
|
||||||
|
|
|
@ -160,7 +160,7 @@ rb_nkf_convert(VALUE obj, VALUE opt, VALUE src)
|
||||||
rb_str_set_len(result, output_ctr);
|
rb_str_set_len(result, output_ctr);
|
||||||
OBJ_INFECT(result, src);
|
OBJ_INFECT(result, src);
|
||||||
|
|
||||||
rb_enc_associate(result, rb_nkf_enc_get(nkf_enc_name(output_encoding)));
|
rb_enc_associate(result, rb_nkf_enc_get(nkf_enc_name(nkf_enc_without_bom(output_encoding))));
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -480,8 +480,8 @@ Init_nkf()
|
||||||
rb_define_const(mNKF, "EUC", rb_enc_from_encoding(rb_nkf_enc_get("EUC-JP")));
|
rb_define_const(mNKF, "EUC", rb_enc_from_encoding(rb_nkf_enc_get("EUC-JP")));
|
||||||
rb_define_const(mNKF, "SJIS", rb_enc_from_encoding(rb_nkf_enc_get("Shift_JIS")));
|
rb_define_const(mNKF, "SJIS", rb_enc_from_encoding(rb_nkf_enc_get("Shift_JIS")));
|
||||||
rb_define_const(mNKF, "UTF8", rb_enc_from_encoding(rb_utf8_encoding()));
|
rb_define_const(mNKF, "UTF8", rb_enc_from_encoding(rb_utf8_encoding()));
|
||||||
rb_define_const(mNKF, "UTF16", rb_enc_from_encoding(rb_nkf_enc_get("UTF-16")));
|
rb_define_const(mNKF, "UTF16", rb_enc_from_encoding(rb_nkf_enc_get("UTF-16BE")));
|
||||||
rb_define_const(mNKF, "UTF32", rb_enc_from_encoding(rb_nkf_enc_get("UTF-32")));
|
rb_define_const(mNKF, "UTF32", rb_enc_from_encoding(rb_nkf_enc_get("UTF-32BE")));
|
||||||
|
|
||||||
/* Full version string of nkf */
|
/* Full version string of nkf */
|
||||||
rb_define_const(mNKF, "VERSION", rb_str_new2(RUBY_NKF_VERSION));
|
rb_define_const(mNKF, "VERSION", rb_str_new2(RUBY_NKF_VERSION));
|
||||||
|
|
Loading…
Reference in a new issue