diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-11-24 00:08:04 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-11-24 00:08:04 +0000 |
commit | 38b482be8c3b53809fa44e35cb0eded148b132c8 () | |
tree | b0aab19655364ea093efdceb915cfd61ba245416 | |
parent | bcf80a5140c1b08899b20d9bbcd5fd9e13db4017 (diff) |
* enc/trans/utf_16_32.trans: add the UTF-32 converter.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | enc/trans/utf_16_32.trans | 87 | ||||
-rw-r--r-- | test/ruby/test_transcode.rb | 7 |
3 files changed, 101 insertions, 1 deletions
@@ -1,3 +1,9 @@ Wed Nov 24 06:13:32 2010 Nobuyoshi Nakada <[email protected]> * win32/win32.c (filecp, wstr_to_mbstr, mbstr_to_wstr): @@ -5,7 +11,7 @@ Wed Nov 24 06:13:32 2010 Nobuyoshi Nakada <[email protected]> Wed Nov 24 05:40:33 2010 NARUSE, Yui <[email protected]> - * enc/trans/utf_16_32.trans: add a convert from UTF-8 to UTF-16. Wed Nov 24 03:21:35 2010 NARUSE, Yui <[email protected]> @@ -26,6 +26,10 @@ transcode_generate_node(ActionMap.parse(map), "from_UTF_16") map = {} map["{00-7f}"] = :func_so map["{c2-df}{80-bf}"] = :func_so map["e0{a0-bf}{80-bf}"] = :func_so @@ -321,6 +325,48 @@ fun_so_from_utf_16(void *statep, const unsigned char *s, size_t l, unsigned char return 0; } static ssize_t fun_so_to_utf_16(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize) { @@ -334,6 +380,21 @@ fun_so_to_utf_16(void *statep, const unsigned char *s, size_t l, unsigned char * return fun_so_to_utf_16be(statep, s, l, o, osize); } static const rb_transcoder rb_from_UTF_16BE = { "UTF-16BE", "UTF-8", from_UTF_16BE, @@ -443,6 +504,18 @@ rb_from_UTF_16 = { }; static const rb_transcoder rb_to_UTF_16 = { "UTF-8", "UTF-16", from_UTF_8, TRANSCODE_TABLE_INFO, @@ -454,6 +527,18 @@ rb_to_UTF_16 = { NULL, NULL, NULL, fun_so_to_utf_16 }; void Init_utf_16_32(void) { @@ -467,4 +552,6 @@ Init_utf_16_32(void) rb_register_transcoder(&rb_to_UTF_32LE); rb_register_transcoder(&rb_from_UTF_16); rb_register_transcoder(&rb_to_UTF_16); } @@ -1027,6 +1027,13 @@ class TestTranscode < Test::Unit::TestCase assert_raise(Encoding::InvalidByteSequenceError){%w/fffeb7df/.pack("H*").encode("UTF-8","UTF-16")} end def check_utf_32_both_ways(utf8, raw) copy = raw.dup 0.step(copy.length-1, 4) do |i| |