[#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:35592] Re: [Ruby 1.8 - Bug #212] Issues with Readline in Mac OS X
高尾宏治です。
On 2008/07/19, at 9:24, Takao Kouji wrote:
> ということで、Readline::HISTORYに対する単体テストを作成しました。
> Readline::HISTORYの全てのメソッドのテストを記述しています。
今回の問題に対応するためのパッチを作成しました。
# テストがあるっていいですね。
パッチの概要を次に述べます。
* GNU Readline を使用した場合の挙動は一切変えません。(変えないように実装したつもりです。)
* パッチの適用前のReadlineモジュールには、
EditLine(libedit) を使用する場合のみ次の問題があります。
* libedit のバージョン (2.9より上?) によっては、
history_get 関数で指定するインデックスは 0 から始まる。
history_base からではない。
これが原因で、 Readline::HISTORY ではユーザからの最初の入力を取得できない。
* history_get 関数で -1 を指定すると 0 番目の history を取得する。
GNU Readline では NULL である。
これが原因で、 Readline::HISTORY[-100] では IndexError 例外が発生しない。
* replace_history_entry 関数で -1 を指定すると 0 番目の history を操作する。
GNU Readline では操作できない。
これが原因で、 Readline::HISTORY[-100] = "abc" などにより
0 番目の history を操作してしまう。
* 上記を回避するため、次のことを行う。
* Init_readline 関数で libedit かどうかを判定する。
* libedit であれば、 history の操作時の最初のインデックスの番号が
history_base か 0 かを調査する。
* 上記の情報を hist_get (Readline::HISTORY[] -> string | nil) で使用する。
* また、 hist_get や hist_set (Readline::HISTORY[index] = string) で
Ruby で index が負の値かどうかチェックする。
なお、パッチの概要は前田さんとも情報共有できていると思うのですが、
実際のパッチの内容まではまだ見ていただいてない状態です。
お手数ですが、確認をお願いします。 > 前田さん
私の手元の環境である Mac OSXのlibedit、
Mac OSX で MacPorts で入れた GNU Readline 5.2 でしか
動作を確認できていません。
そこで、 [ruby-dev:35553] で報告があった Ubuntu 8.04 の libedit や
Mac OSX 10.4 の libedit で試していただける方を募集します。
試す方法を以下に書きます。
1. ruby の trunk を用意する。
2. このメールのパッチと [ruby-dev:35588] のパッチを当てる。
$ cd /path/to/ruby/trunk
$ patch -p0 < /path/to/patch
3. configure に --with-libedit を付けて実行する。
$ ./configure --with-libedit
4. make
5. 単体テストの実行。
$ ./ruby -I.ext/<arch dir> -rreadline \
test/readline/test_readline_history.rb
上記のテストがパスできれば OK です。
パスできなかった場合は教えてください。がんばります。
以下、パッチです。
----- ここから -----
Index: readline.c
===================================================================
--- readline.c (revision 18084)
+++ readline.c (working copy)
@@ -29,6 +29,8 @@
static VALUE mReadline;
+#define EDIT_LINE_LIBRARY_VERSION "EditLine wrapper"
+
#define COMPLETION_PROC "completion_proc"
#define COMPLETION_CASE_FOLD "completion_case_fold"
static ID completion_proc, completion_case_fold;
@@ -43,6 +45,8 @@
# define rl_completion_matches completion_matches
#endif
+static int (*history_get_offset_func)(int);
+
static char **readline_attempted_completion_function(const char *text,
int start, int end);
@@ -505,10 +509,22 @@
return rb_str_new2("HISTORY");
}
+static int
+history_get_offset_history_base(int offset)
+{
+ return history_base + offset;
+}
+
+static int
+history_get_offset_0(int offset)
+{
+ return offset;
+}
+
static VALUE
hist_get(VALUE self, VALUE index)
{
- HIST_ENTRY *entry;
+ HIST_ENTRY *entry = NULL;
int i;
rb_secure(4);
@@ -516,7 +532,9 @@
if (i < 0) {
i += history_length;
}
- entry = history_get(history_base + i);
+ if (i >= 0) {
+ entry = history_get(history_get_offset_func(i));
+ }
if (entry == NULL) {
rb_raise(rb_eIndexError, "invalid index");
}
@@ -527,7 +545,7 @@
hist_set(VALUE self, VALUE index, VALUE str)
{
#ifdef HAVE_REPLACE_HISTORY_ENTRY
- HIST_ENTRY *entry;
+ HIST_ENTRY *entry = NULL;
int i;
rb_secure(4);
@@ -536,7 +554,9 @@
if (i < 0) {
i += history_length;
}
- entry = replace_history_entry(i, RSTRING_PTR(str), NULL);
+ if (i >= 0) {
+ entry = replace_history_entry(i, RSTRING_PTR(str), NULL);
+ }
if (entry == NULL) {
rb_raise(rb_eIndexError, "invalid index");
}
@@ -581,7 +601,7 @@
entry = remove_history(index);
if (entry) {
val = rb_tainted_str_new2(entry->line);
- free(entry->line);
+ free((void *) entry->line);
free(entry);
return val;
}
@@ -624,7 +644,7 @@
rb_secure(4);
for (i = 0; i < history_length; i++) {
- entry = history_get(history_base + i);
+ entry = history_get(history_get_offset_func(i));
if (entry == NULL)
break;
rb_yield(rb_tainted_str_new2(entry->line));
@@ -793,8 +813,17 @@
rb_define_singleton_method(ucomp, "call",
username_completion_proc_call, 1);
rb_define_const(mReadline, "USERNAME_COMPLETION_PROC", ucomp);
+ history_get_offset_func = history_get_offset_history_base;
#if defined HAVE_RL_LIBRARY_VERSION
rb_define_const(mReadline, "VERSION", rb_str_new2(rl_library_version));
+ if (strncmp(rl_library_version, EDIT_LINE_LIBRARY_VERSION,
+ strlen(EDIT_LINE_LIBRARY_VERSION)) == 0) {
+ add_history("1");
+ if (history_get(history_get_offset_func(0)) == NULL) {
+ history_get_offset_func = history_get_offset_0;
+ }
+ clear_history();
+ }
#else
rb_define_const(mReadline, "VERSION", rb_str_new2("2.0 or prior version"));
#endif