[#32434] signature of exit() on C++ — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
きしもとです
なかだです。
> > /usr/local/include/ruby-1.9/i686-linux/ruby/config.h
[#32447] ruby 1.9 trunk NKF and KCONV Encoding:ASCII-8BIT — WATANABE Tetsuya <Tetsuya.WATANABE@...>
渡辺哲也です。
[#32448] SEGV on "abcd\xf0".force_encoding("utf-8").reverse — Tanaka Akira <akr@...>
以下のようにすると SEGV します。
[#32452] `split': negative string size (or size too big) (ArgumentError) — Tanaka Akira <akr@...>
"あいうえお".force_encoding("euc-jp").split(//) と (EUC-JP
[#32462] SEGV by test/ruby/test_fiber.rb — Tanaka Akira <akr@...>
test/ruby/test_fiber.rb ですが、以下のように insnhelper.ci
In article <87fxyhpw0t.fsf@fsij.org>,
[#32468] Iconv.list patch for NetBSD/Citrus — "NARUSE, Yui" <naruse@...>
成瀬です。
[#32473] about to_path and to_open — "Yusuke ENDOH" <mame@...>
遠藤と申します。
[#32498] Re: [ruby-cvs:21399] Ruby:r14162 (trunk): * parse.y (expr): redefinable not (!) operator. — SASADA Koichi <ko1@...>
ささだです.
まつもと ゆきひろです
[#32512] Re: [ruby-cvs:21409] Ruby:r14172 (trunk): * transcode.c: new file to provide encoding conversion features. — Nobuyoshi Nakada <nobu@...>
なかだです。
中田さん、こんにちは。
成瀬です。
中田さん、こんにちは。
なかだです。
まつもと ゆきひろです
At 15:33 07/12/11, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
成瀬です。
At Wed, 12 Dec 2007 02:49:09 +0900,
At 02:55 07/12/12, SATOH Fumiyasu wrote:
At 21:50 07/12/10, Nobuyoshi Nakada wrote:
松本さん、中田さん、こんにちは。
なかだです。
[#32518] bug in Array#slice! — Satoshi Nakagawa <snakagawa@...>
中川といいます。
At Mon, 10 Dec 2007 19:27:17 +0900,
[#32550] Binary String — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
なかだです。
永井@知能.九工大です.
In article <20080111.171950.78716471.nagai@ai.kyutech.ac.jp>,
永井@知能.九工大です.
In article <20080111.184442.74744388.nagai@ai.kyutech.ac.jp>,
まつもと ゆきひろです
永井@知能.九工大です.
In article <20080112.004750.74741782.nagai@ai.kyutech.ac.jp>,
永井@知能.九工大です.
In article <20080112.100830.112615025.nagai@ai.kyutech.ac.jp>,
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
遊楽庵です。
成瀬です。
まつもと ゆきひろです
In article <E1JFVE8-0000Co-QL@x61.netlab.jp>,
成瀬です。
In article <47975933.8010907@airemix.com>,
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
西山和広です。
まつもと ゆきひろです
In article <20080115.024201.41653719.nagai@ai.kyutech.ac.jp>,
永井@知能.九工大です.
In article <20080116.102057.41656941.nagai@ai.kyutech.ac.jp>,
永井@知能.九工大です.
In article <20080117.233832.74721189.nagai@ai.kyutech.ac.jp>,
Gimiteといいます。
成瀬です。
Gimiteです。
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
m17n には近づかないようにしているささだです。
成瀬です。
遊楽庵です。
成瀬です。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
長文失礼します。
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
成瀬です。
At 04:55 08/01/20, NARUSE, Yui wrote:
成瀬です。
成瀬です。
永井@知能.九工大です.
成瀬です。
遊楽庵と申します。
永井@知能.九工大です.
[#32556] default completion for irb1.9 — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。
[#32563] transcoder loading — Nobuyoshi Nakada <nobu@...>
なかだです。
[#32567] [nil, [...]] — Tanaka Akira <akr@...>
以下のようにすると作っていないはずの再帰的な配列が出てきます。
[#32588] /(?<foo>...)/ =~ str assigns foo — Tanaka Akira <akr@...>
以下のように named capture の結果を自動的に変数に代入させた
まつもと ゆきひろです
In article <E1J34q8-00027E-EF@localhost>,
[#32610] 1.9.1 issues left (as of 12/15) — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
Yukihiro Matsumoto さんは書きました:
まつもと ゆきひろです
You may consider this:
[#32629] faster Bignum#* — "Yusuke ENDOH" <mame@...>
遠藤と申します。
[#32662] encode! は変換しないときに <nil> になってしまう。 — Martin Duerst <duerst@...>
中田さん、こんにちは。
[#32668] syntax errors on ext/tk/sample — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#32695] ISO-2022-JP output for transcode — "NARUSE, Yui" <naruse@...>
成瀬です。
なかだです。
成瀬さん、中田さん、こんにちは。
[#32708] Enumerable can't take multiple parameters — GOTOU Yuuzou <gotoyuzo@...>
eachで複数のパラメータをyieldしたときに、Enumerable#colectで、
[#32715] issues left as of 12/25 2:00am JST — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
まつもとさん、こんにちは。
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
[#32726] Can't build on MacOSX 10.4(Tiger) (was Re: Re: 1.9.1 issues left (as of 12/15)) — "MOROHASHI Kyosuke" <moronatural@...>
もろはしです。お世話になっております。
[#32756] make rdoc cause segv on OpenBSD — SASADA Koichi <ko1@...>
ささだです。
[#32763] Re: [ruby-cvs:21913] Ruby:r14676 (trunk): * trunk/common.mk, goruby.c, golf_prelude.rb: for golfers. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#32791] Re: [ruby-list:44387] [ANN] Ruby 1.9.0 is released — SASADA Koichi <ko1@...>
ささだです。
まつもとさん、笹田さん、
まつもと ゆきひろです
まつもと ゆきひろです
福島の藤岡です。
木村です。
[#32823] class TimeSpan — "NARUSE, Yui" <naruse@...>
成瀬です。
ActiveSupportにあるNumericの拡張はダメですか??
[#32834] Re: [ ruby-Bugs-16634 ] Tk#bindinfo fails with: NoMethodError: undefined method 'collect' for "":String — Urabe Shyouhei <shyouhei@...>
以下のバグ報告が来ています
[#32843] Windowでのデフォルトエンコーディング — KIMURA Koichi <kimura.koichi@...>
木村です。
こんにちは、なかむら(う)です。
At 13:55 07/12/28, U.Nakamura wrote:
成瀬です。
なかだです。
In article <20071228092137.97233E065F@mail.bc9.jp>,
なかだです。
U.Nakamura wrote:
こんにちは、なかむら(う)です。
木村です。
成瀬です。
[#32848] Fwd: [ruby-cvs:21983] Ruby:r14746 (trunk): * transcode.c (transcode_dispatch): allows transcoding from/to — Martin Duerst <duerst@...>
中田さん、こんにちは。
[#32852] Resolv::DNS#getaddresses doesn't return IPv6 address — "NARUSE, Yui" <naruse@...>
成瀬です。
こんにちは。
成瀬です。
In message <477EF0C9.4060103@airemix.com>
成瀬です
In message <477FAAB4.1060005@airemix.com>
梅本です。
成瀬です。
In article <47809D55.4030208@airemix.com>,
[#32892] *, z = 1 breaks stack consistency — "Yusuke ENDOH" <mame@...>
遠藤と申します。
[#32904] Integer overflow on struct timespec — zunda <zunda616e@...>
zundaと申します
[ruby-dev:32532] Re: [ruby-cvs:21409] Ruby:r14172 (trunk): * transcode.c: new file to provide encoding conversion features.
At 21:50 07/12/10, Nobuyoshi Nakada wrote: >なかだです。 > >At Mon, 10 Dec 2007 20:35:58 +0900, >Martin Duerst wrote in [ruby-dev:32520]: >> 中田さんの下記のパッチの一部は「全ての encode で使える >> 文字コードは Encoding として存在する」という前提で >> 行われていたが、それは必ずしもそうとも限りません。 >> その部分を元に戻していただきますでしょうか。 >> それともこちらから更なるパッチを送った方がいいだすか。 > >直しました。 ありがとうございました。大変助かりました。 >一緒に、登録していないEncodingに変換した場合は、変換 >後にreplicateしてセットするようにしました。 以前まつもとさんがメールで「ASCII-8BIT でいい」と書きましたが、 このところは Encoding の専門家の中田さんにまかせます。 これで手元のテストは一つ以外全部通過します。 残るのは、encode! の場合変換後の Encoding が変換前のまま ということです。これを rb_str_shared_replace か rb_str_transcode_bang で修正した方がいいと思いますが、 どちらの方がいいでしょうか。 test/ruby/test_transcode.rb へのパッチを添付します。 テストの数が少し増えましたし、中田さんの Encoding の 設定の変更にあわせました。 宜しくお願いします。 Martin. #-#-# Martin J. Du"rst, Assoc. Professor, Aoyama Gakuin University #-#-# http://www.sw.it.aoyama.ac.jp mailto:duerst@it.aoyama.ac.jp
Attachments (1)
Index: test_transcode.rb
===================================================================
--- test_transcode.rb (revision 14189)
+++ test_transcode.rb (working copy)
@@ -1,15 +1,8 @@
-# -*- encoding: US-ASCII -*- # make sure this runs in binary mode
+# -*- encoding: ASCII-8BIT -*- # make sure this runs in binary mode
-class String
- # different name, because we should be able to remove this later
- def fix_encoding (encoding)
- force_encoding(encoding)
- end
-end
-
require 'test/unit'
class TestConvert < Test::Unit::TestCase
- def test_can_call
+ def test_basic
# we don't have semantics for conversion without attribute yet
# maybe 'convert to UTF-8' would be nice :-)
assert_raise(ArgumentError) { 'abc'.encode }
@@ -20,25 +13,63 @@
assert_raise(ArgumentError) { 'abc'.encode!('foo', 'bar') }
assert_raise(ArgumentError) { 'abc'.force_encoding('utf-8').encode('foo') }
assert_raise(ArgumentError) { 'abc'.force_encoding('utf-8').encode!('foo') }
- assert_equal('abc'.force_encoding('utf-8').encode('iso-8859-1'), 'abc') # temporary, fix encoding
- assert_equal("D\xFCrst".force_encoding('iso-8859-1').encode('utf-8').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-1').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-2').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-3').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-4').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-9').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-10').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-13').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-14').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-15').fix_encoding('utf-8'), "D\u00FCrst")
- assert_equal("D\u00FCrst".encode('iso-8859-1'), "D\xFCrst")
- assert_equal("D\u00FCrst".encode('iso-8859-2'), "D\xFCrst")
- assert_equal("D\u00FCrst".encode('iso-8859-3'), "D\xFCrst")
- assert_equal("D\u00FCrst".encode('iso-8859-4'), "D\xFCrst")
- assert_equal("D\u00FCrst".encode('iso-8859-9'), "D\xFCrst")
- assert_equal("D\u00FCrst".encode('iso-8859-10'), "D\xFCrst")
- assert_equal("D\u00FCrst".encode('iso-8859-13'), "D\xFCrst")
- assert_equal("D\u00FCrst".encode('iso-8859-14'), "D\xFCrst")
- assert_equal("D\u00FCrst".encode('iso-8859-15'), "D\xFCrst")
+ assert_equal('abc'.force_encoding('utf-8').encode('iso-8859-1'), 'abc')
+ # check that encoding is kept when no conversion is done
+ assert_equal('abc'.force_encoding('Shift_JIS').encode('Shift_JIS'), 'abc'.force_encoding('Shift_JIS'))
+ assert_equal('abc'.force_encoding('Shift_JIS').encode!('Shift_JIS'), 'abc'.force_encoding('Shift_JIS'))
+ # assert that encoding is correctly set
+ assert_equal("D\xFCrst".force_encoding('iso-8859-1').encode('utf-8').encoding, "D\u00FCrst".encoding)
+ # check that Encoding can be used as parameter
+ assert_equal("D\xFCrst".encode('utf-8', Encoding.find('ISO-8859-1')), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode(Encoding.find('utf-8'), 'ISO-8859-1'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode(Encoding.find('utf-8'), Encoding.find('ISO-8859-1')), "D\u00FCrst")
+
+ # temporary, fix encoding
+ assert_equal("D\xFCrst".force_encoding('iso-8859-1').encode('utf-8'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-1'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-2'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-3'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-4'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-9'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-10'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-13'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-14'), "D\u00FCrst")
+ assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-15'), "D\u00FCrst")
+ assert_equal("D\u00FCrst".encode('iso-8859-1'), "D\xFCrst".force_encoding('iso-8859-1'))
+ assert_equal("D\u00FCrst".encode('iso-8859-2'), "D\xFCrst".force_encoding('iso-8859-2'))
+ assert_equal("D\u00FCrst".encode('iso-8859-3'), "D\xFCrst".force_encoding('iso-8859-3'))
+ assert_equal("D\u00FCrst".encode('iso-8859-4'), "D\xFCrst".force_encoding('iso-8859-4'))
+ assert_equal("D\u00FCrst".encode('iso-8859-9'), "D\xFCrst".force_encoding('iso-8859-9'))
+ assert_equal("D\u00FCrst".encode('iso-8859-10'), "D\xFCrst".force_encoding('iso-8859-10'))
+ assert_equal("D\u00FCrst".encode('iso-8859-13'), "D\xFCrst".force_encoding('iso-8859-13'))
+ assert_equal("D\u00FCrst".encode('iso-8859-14'), "D\xFCrst".force_encoding('iso-8859-14'))
+ assert_equal("D\u00FCrst".encode('iso-8859-15'), "D\xFCrst".force_encoding('iso-8859-15'))
+ # test length extension
+ assert_equal(("\xA4"*20).encode('utf-8', 'iso-8859-15'), "\u20AC"*20)
+ assert_equal(("\xA4"*20).encode!('utf-8', 'iso-8859-15'), "\u20AC"*20)
+
end
+
+ def test_all_bytes
+ encodings_8859 = [
+ 'ISO-8859-1', 'ISO-8859-2',
+ #'ISO-8859-3', # not all bytes used
+ 'ISO-8859-4', 'ISO-8859-5',
+ #'ISO-8859-6', # not all bytes used
+ #'ISO-8859-7', # not all bytes used
+ #'ISO-8859-8', # not all bytes used
+ 'ISO-8859-9', 'ISO-8859-10',
+ #'ISO-8859-11', # not all bytes used
+ #'ISO-8859-12', # not available
+ 'ISO-8859-13','ISO-8859-14','ISO-8859-15',
+ #'ISO-8859-16', # not available
+ ]
+ all_bytes = (0..255).collect {|x| x}.pack 'C*'
+ test_start = all_bytes
+ test_start.encode('UTF-8','ISO-8859-1').encode('ISO-8859-1')
+ encodings_8859.each do |enc|
+ test_start = all_bytes
+ assert_equal(test_start.encode('UTF-8',enc).encode(enc).force_encoding('ASCII-8BIT'), test_start)
+ end
+ end
end