[#37679] [FEATURE:trunk] EncDet again — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

23 messages 2009/01/03

[#37748] $LOAD_PATHとバージョンの運用の関係 — akira yamada / やまだあきら <akira@...>

1.9系でのバージョンの運用と$LOAD_PATHの値について質問です。

12 messages 2009/01/09
[#37758] Re: $LOAD_PATHとバージョンの運用の関係 — "NARUSE, Yui" <naruse@...> 2009/01/11

成瀬です。

[ruby-dev:37723] Re: IRB doesn't prompt for MSWin32

From: "U.Nakamura" <usa@...>
Date: 2009-01-07 12:43:48 UTC
List: ruby-dev #37723
こんにちは、なかむら(う)です。

In message "[ruby-dev:37721] Re: IRB doesn't prompt for MSWin32"
    on Jan.07,2009 20:37:59, <artonx@yahoo.co.jp> wrote:
> で、IO.openに、ファイルディスクリプタを与えると、stdioかどうかのフラグに
> は反映されないところに何かあるのではないか、と思います。
> その結果、io.cのrb_io_stdio_fileの中でrb_fdopenを呼び出すことになるわけ
> で、ここで得られるFILE*と、元のMSVCRTのFILE*に何か、コンソール周りの処理
> に違いがあるのではないかと。

おっしゃるとおりのようで、以下のパッチで実験したところでは正
常に動作しました。
(実際の修正としてこれでいいことにするかどうかは微妙なところ)

Index: io.c
===================================================================
--- io.c	(revision 21369)
+++ io.c	(working copy)
@@ -5963,6 +5963,12 @@ rb_io_initialize(int argc, VALUE *argv, 
     fp->encs = convconfig;
     clear_codeconv(fp);
     io_check_tty(fp);
+    if (fileno(stdin) == fd)
+	fp->stdio_file = stdin;
+    else if (fileno(stdout) == fd)
+	fp->stdio_file = stdout;
+    else if (fileno(stderr) == fd)
+	fp->stdio_file = stderr;
 
     return io;
 }

それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>


In This Thread