[#35333] [Ruby 1.8 - Bug #221] (Open) Net::SMTPでSMTPのHELO/EHLOにデフォルトで不正なホスト名を使用 — Anonymous <redmine@...>
チケット #221 が報告されました。 (by Anonymous)
チケット #221 が更新されました。 (by Masahiro Tomita)
チケット #221 が更新されました。 (by Anonymous)
とみたです。
とみたです。
卜部です。
西山和広です。
[#35355] リリース前ToDoリスト — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
高尾宏治です。
高尾宏治です。
なかだです。
高尾宏治です。
なかだです。
前田です。
なかだです。
前田です。
なかだです。
高尾宏治です。
山口と申します。
高尾宏治です。
高尾宏治です。
高尾宏治です。
GyRCJDMkcyRLJEEkTyEjGyhCTS5TdXp1a2kbJEIkRyQ5ISMbKEINCg0KGyRCO24kNyRGJF8kXiQ3
高尾宏治です。
高尾宏治です。
高尾宏治です。
GyRCJDMkcyRLJEEkTxsoQiBNLlN1enVraSAbJEIkRyQ5ISMbKEINCg0KTWFjIE9TWCAxMC40GyRC
高尾宏治です。
[#35372] patch for ruby-core:17472 — wanabe <s.wanabe@...>
ワナベと申します。
なかだです。
ワナベです。
遠藤です。
=1B$B$`$i$?$G$9!#=1B(B
豊福です。
[#35375] Re: [ruby-cvs:25121] Ruby:r17902 (ruby_1_8_6): * re.c (rb_reg_search): need to free allocated buffer in re_register. [ruby-core:17518] — Urabe Shyouhei <shyouhei@...>
卜部です。ruby_1_8_xの枝を弄る人全員にお願いです。チェックインする前に必
[#35389] Re: [ruby-cvs:25164] Ruby:r17945 (trunk, ruby_1_8): * string.c (rb_str_succ): limit carrying in an alphanumeric region if — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#35396] cc always picks ruby/ruby.h on OS X — "Akinori MUSHA" <knu@...>
ruby 1.8 の tk ライブラリが OS X 上でビルドできない件です。
[#35404] ruby_1_8_6/ruby_1_8_7ブランチのメンテナンスポリシーについて — "Shugo Maeda" <shugo@...>
前田です。
卜部です。
前田です。
卜部です。
前田です。
Shugo Maeda さんは書きました:
どこにぶら下げるのがいいのかわからないので、単に意思表明ですが、
卜部です。
At Fri, 11 Jul 2008 01:00:29 +0900,
前田です。
In article <704d5db90807110028o238594f2wda0ec1bf12abc940@mail.gmail.com>,
そういえばこの部分に言及するのを忘れていた
前田です。
卜部です。
前田です。
In article <704d5db90807121803o5ea67361ucbf968f8a18a845d@mail.gmail.com>,
Tanaka Akira さんは書きました:
前田です。
卜部です。
前田です。
卜部です。
前田です。
卜部です。
前田です。
こんにちは、なかむら(う)です。
卜部です。
[#35420] Re: [ruby-cvs:25212] Ruby:r17993 (trunk): * test/ruby/envutil.rb (assert_normal_exit): finish writing script — Tanaka Akira <akr@...>
In article <200807100931.m6A9V4vi014459@ci.ruby-lang.org>,
ワナベです。
こんにちは、なかむら(う)です。
ワナベです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
In article <20080711050939.531D.C613B076@garbagecollect.jp>,
こんにちは、なかむら(う)です。
[#35446] [Bug:trunk] Thread#kill cannot break BLOCKING_REGION() on windows — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#35450] [BUG] cfp consistency error in Win32OLE — Masaki Suketa <masaki.suketa@...>
助田です。
ワナベと申します。
助田です。
[#35458] make profiler for gc — authorNari <authornari@...>
nariです。
In article <1153cee60807122239t19f6ae05vc0c1995c77349377@mail.gmail.com>,
nariです。
nariです。
三浦と申します。
[#35471] [Bug: 1.9] lazy timer thraed creation — SASADA Koichi <ko1@...>
ささだです.
[#35484] Re: [ruby-core:17739] [Ruby 1.9 - Bug #256] (Open) defined?(Gem::RubyGemsVersion) behaves strange — wanabe <s.wanabe@...>
ワナベと申します。
西山和広です。
斎藤と申します。
[#35542] [Bug:1.9] sleep and Thread#run — Tanaka Akira <akr@...>
1.9 では sleep で寝ているスレッドを Thread#run で起こせない
[#35545] Test::Unit -> miniunit — Kouhei Sutou <kou@...>
須藤です。
まつもと ゆきひろです
[#35555] [Ruby 1.9 - Bug #282] (Open) failure of test_asctime(TestTime) on mswin32 — Usaku NAKAMURA <redmine@...>
チケット #282 が報告されました。 (by Usaku NAKAMURA)
ワナベと申します。
[#35578] [Bug:1.9] context switch may occur during freeing io — "Yusuke ENDOH" <mame@...>
遠藤です。
[#35597] [request]C APIの拡張 — "Goro Fuji" <g.psy.va@...>
藤と申します。
なかだです。
ご意見ありがとうございます。
なかだです。
卜部さん
卜部です。
[#35620] non-locale filename encoding — Tanaka Akira <akr@...>
Dir の使いかたとして、ファイル名のエンコーディングが locale
成瀬です。
In article <48866F3F.80906@airemix.jp>,
成瀬です。
In article <488771FD.4020800@airemix.jp>,
Tanaka Akira wrote:
In article <4888B29D.7030009@airemix.jp>,
成瀬です。
In article <488AC157.7090203@airemix.jp>,
[#35646] [Bug:1.9] Rinda has a race condition — "Yusuke ENDOH" <mame@...>
遠藤です。
[#35648] [Bug:1.9] MingwでIO#dupがブロックする — wanabe <s.wanabe@...>
ワナベと申します。
[#35649] PENDINGS.rb (Was: Re: [Ruby 1.9 - Bug #354] (Assigned) Test failure test/ruby/test_transcode.rb) — "Yusuke ENDOH" <mame@...>
遠藤です。
In article <e0b1e5700807240845o4c09cfa5gae142c1dd0c74170@mail.gmail.com>,
2008/07/25 1:02 Tanaka Akira <akr@fsij.org>:
成瀬です。
遠藤です。
In article <e0b1e5700807290517mee11539lfbd82d4dfc98c53f@mail.gmail.com>,
遠藤です。
In article <e0b1e5700807300311v13752775mcf8bb5086753051d@mail.gmail.com>,
[#35669] [Ruby 1.9 - Bug #368] (Open) 境界における Math.atanh 等の動作 — Yui NARUSE <redmine@...>
チケット #368 が報告されました。 (by Yui NARUSE)
斎藤と申します。
[#35681] [Ruby 1.9 - Bug #369] (Open) Ruby 1.9.0-3で R — Akira Matsuda <redmine@...>
チケット #369 が報告されました。 (by Akira Matsuda)
[ruby-dev:35661] Re: non-locale filename encoding
In article <488AC157.7090203@airemix.jp>,
"NARUSE, Yui" <naruse@airemix.jp> writes:
> Windows で W 系 API が使われるのを前提として (今はまだ A 系)、
>
> Dir.foreach(".", :internal_encoding => "CP51932") do |fn|
> p [fn, File.size(fn)] # Windows なのでパス自動変換
> end
>
> とかでしょうか。
ふむ、CP51932 ですか。使用頻度が低そうですね。
もっと普通の人が使いそうな例ってありますか?
しかし、やはり :internal_encoding を削除したほうがいいと思い
ます。
まず、unix で :internal_encoding を使って変換すると、ファイ
ル名としてのバイト列が壊れて、open 等の操作が出来なくなりま
す。以前、[ruby-dev:34933] で
| ファイル名で一番重要なのは、ファイルを同定できるという性質で
| はないでしょうか。ファイル名を読めるというのはその次にくる性
| 質だと思います。
と書きましたが、:internal_encoding を使うと、ファイルを同定
できなくなります。これは許し難い性質です。
また windows でも、指定するエンコーディングによって問題があっ
たりなかったりするということがあります。生のファイル名と指定
したエンコーディングとの変換で round trip するかどうかが問題
ですが、これは知っていないと判断が困難です。しかも、知らない
ひとが試行錯誤して調べてみようと思っても、:internal_encoding
を使うと、変換元の文字列を確認できませんから、試行錯誤するこ
と自体が困難です。
あと、変換に失敗したときにファイル名が失われる、という点もあ
ります。Dir#read 内で、readdir(3) に成功した後に変換を行うた
め、そこで例外が起きれば readdir が返したファイル名が失われ
ます。
このような問題を考えると :internal_encoding に相当することを
やりたければ、Dir 自体じゃなくて、Dir を使う側が
String#encode で行うというのがいいんじゃないでしょうか。
つまり、
Dir.open(dir, :internal_encoding=>enc) {|d|
d.read
}
の代わりに、
Dir.open(dir) {|d|
d.read.encode(enc)
}
とする、というわけです。
こうすれば、呼び出した側は、変換元の文字列を知ることができ、
変換で何が起こるのかを調べることが出来ます。また、変換に害が
あることを知って、変換せずにファイル名を使うようになれば、
unix でも windows でも動作するプログラムが書けるようになりま
す。
というわけで、パッチを書いてみました。
なお、Dir.open のところで (unix 上でも) パスを変換することが
あって、Dir.open 出来るべきものが出来ないことがあったので、
そこも削除してあります。
% svn diff --diff-cmd diff -x '-u -p'
Index: dir.c
===================================================================
--- dir.c (revision 18220)
+++ dir.c (working copy)
@@ -291,7 +291,6 @@ VALUE rb_cDir;
struct dir_data {
DIR *dir;
char *path;
- rb_encoding *intenc;
rb_encoding *extenc;
};
@@ -315,7 +314,6 @@ dir_s_alloc(VALUE klass)
dirp->dir = NULL;
dirp->path = NULL;
- dirp->intenc = NULL;
dirp->extenc = NULL;
return obj;
@@ -332,66 +330,37 @@ dir_initialize(int argc, VALUE *argv, VA
{
struct dir_data *dp;
static rb_encoding *fs_encoding;
- rb_encoding *intencoding, *extencoding;
+ rb_encoding *extencoding;
VALUE dirname, opt;
- static VALUE sym_intenc, sym_extenc;
+ static VALUE sym_extenc;
- if (!sym_intenc) {
- sym_intenc = ID2SYM(rb_intern("internal_encoding"));
+ if (!sym_extenc) {
sym_extenc = ID2SYM(rb_intern("external_encoding"));
fs_encoding = rb_filesystem_encoding();
}
- intencoding = NULL;
extencoding = fs_encoding;
rb_scan_args(argc, argv, "11", &dirname, &opt);
if (!NIL_P(opt)) {
- VALUE v, extenc=Qnil, intenc=Qnil;
+ VALUE v, extenc=Qnil;
opt = rb_convert_type(opt, T_HASH, "Hash", "to_hash");
- v = rb_hash_aref(opt, sym_intenc);
- if (!NIL_P(v)) intenc = v;
v = rb_hash_aref(opt, sym_extenc);
if (!NIL_P(v)) extenc = v;
if (!NIL_P(extenc)) {
extencoding = rb_to_encoding(extenc);
- if (!NIL_P(intenc)) {
- intencoding = rb_to_encoding(intenc);
- if (extencoding == intencoding) {
- rb_warn("Ignoring internal encoding '%s': it is identical to external encoding '%s'",
- RSTRING_PTR(rb_inspect(intenc)),
- RSTRING_PTR(rb_inspect(extenc)));
- intencoding = NULL;
- }
- }
- }
- else if (!NIL_P(intenc)) {
- rb_raise(rb_eArgError, "External encoding must be specified when internal encoding is given");
}
}
FilePathValue(dirname);
- {
- rb_encoding *dirname_encoding = rb_enc_get(dirname);
- if (rb_usascii_encoding() != dirname_encoding
- && rb_ascii8bit_encoding() != dirname_encoding
-#if defined __APPLE__
- && rb_utf8_encoding() != dirname_encoding
-#endif
- && extencoding != dirname_encoding) {
- if (!intencoding) intencoding = dirname_encoding;
- dirname = rb_str_transcode(dirname, rb_enc_from_encoding(extencoding));
- }
- }
Data_Get_Struct(dir, struct dir_data, dp);
if (dp->dir) closedir(dp->dir);
if (dp->path) xfree(dp->path);
dp->dir = NULL;
dp->path = NULL;
- dp->intenc = intencoding;
dp->extenc = extencoding;
dp->dir = opendir(RSTRING_PTR(dirname));
if (dp->dir == NULL) {
@@ -457,9 +426,6 @@ static VALUE
dir_enc_str(VALUE str, struct dir_data *dirp)
{
rb_enc_associate(str, dirp->extenc);
- if (dirp->intenc) {
- str = rb_str_transcode(str, rb_enc_from_encoding(dirp->intenc));
- }
return str;
}
--
[田中 哲][たなか あきら][Tanaka Akira]