[#25636] [Oniguruma 3.X] reggnu.c — "K.Kosako" <sndgk393@...>

さっき気がついたのですが、元々は

15 messages 2005/02/05

[#25655] openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — Tanaka Akira <akr@...17n.org>

open-uri で https を扱うことを考えていろいろと調べていた所、openssl で、

9 messages 2005/02/08
[#25670] Re: openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — GOTOU Yuuzou <gotoyuzo@...> 2005/02/10

In message <876513vce0.fsf@serein.a02.aist.go.jp>,

[#25713] pthread trouble on sighandler — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

17 messages 2005/02/18
[#25714] Re: pthread trouble on sighandler — Yukihiro Matsumoto <matz@...> 2005/02/18

まつもと ゆきひろです

[#25755] I/O operation differs signal handler — Minero Aoki <aamine@...>

青木です。

14 messages 2005/02/24
[#25756] Re: I/O operation differs signal handler — Tanaka Akira <akr@...17n.org> 2005/02/24

In article <20050224091450P.aamine@loveruby.net>,

[ruby-dev:25699] readline.so should use rl_outstream

From: sheepman <sheepman@...>
Date: 2005-02-15 13:57:14 UTC
List: ruby-dev #25699
こんばんは、sheepman です。

2ちゃんねるのスレで irb を使っている時に

irb(main):001:0> help :inject

と実行すると、以後入力がエコーされないという報告がありました。
僕の手元でも再現しました。

以下のように STDOUT を reopen すると再現します。

io = STDOUT.clone
o = File.open("/dev/null", "w")
STDOUT.reopen(o)
STDOUT.reopen(io)
o.close

$ ruby -v
ruby 1.9.0 (2005-02-14) [i686-linux]

readline に STDOUT を教えてやる必要があるようです。
以下はパッチです。

	* ext/readline/readline.c (Readline.readline): use rl_outstream 
          and rl_instream.

Index: readline.c
===================================================================
RCS file: /src/ruby/ext/readline/readline.c,v
retrieving revision 1.20
diff -u -1 -r1.20 readline.c
--- readline.c  16 Jan 2005 22:09:13 -0000      1.20
+++ readline.c  15 Feb 2005 13:14:34 -0000
@@ -9,2 +9,3 @@
 #include "ruby.h"
+#include "rubyio.h"
 #include "rubysig.h"
@@ -47,3 +48,4 @@
     int status;
-
+    OpenFile *ofp, *ifp;
+
     rb_secure(4);
@@ -56,2 +58,6 @@

+    GetOpenFile(rb_stdout, ofp);
+    rl_outstream = rb_io_stdio_file(ofp);
+    GetOpenFile(rb_stdin, ifp);
+    rl_instream = rb_io_stdio_file(ifp);
     buff = (char*)rb_protect((VALUE(*)_((VALUE)))readline, (VALUE)prompt,

-- 
sheepman / TAMURA Takashi
sheepman@tcn.zaq.ne.jp http://sheepman.parfait.ne.jp/

In This Thread

Prev Next