Feature #8675

Add Readline.point=(pos)

Added by Yui NARUSE over 1 year ago. Updated over 1 year ago.

[ruby-dev:47535]
Status:Closed
Priority:Normal
Assignee:Kouji Takao

Description

r42146 でのテスト修正で \A を入力しているのですが、rl_point を直接いじった方が正しい気がするので。

diff --git a/ext/readline/readline.c b/ext/readline/readline.c
index 714b08c..03ab724 100644
--- a/ext/readline/readline.c
+++ b/ext/readline/readline.c
@@ -808,6 +808,12 @@ readline_s_get_point(VALUE self)
{
return INT2NUM(rl_point);
}
+static VALUE
+readline_s_set_point(VALUE self, VALUE pos)
+{
+ rl_point = NUM2INT(pos);
+ return pos;
+}
#else
#define readline_s_get_point rb_f_notimplement
#endif
@@ -1761,6 +1767,8 @@ Init_readline()
readline_s_get_line_buffer, 0);
rb_define_singleton_method(mReadline, "point",
readline_s_get_point, 0);
+ rb_define_singleton_method(mReadline, "point=",
+ readline_s_set_point, 1);
rb_define_singleton_method(mReadline, "set_screen_size",
readline_s_set_screen_size, 2);
rb_define_singleton_method(mReadline, "get_screen_size",

Associated revisions

Revision 42405
Added by Kouji Takao over 1 year ago

  • ext/readline/readline.c (readline_s_set_point, Init_readline): add Readline.point=(pos). Patched by naruse. [Feature #8675]

Revision 42405
Added by Kouji Takao over 1 year ago

  • ext/readline/readline.c (readline_s_set_point, Init_readline): add Readline.point=(pos). Patched by naruse. [Feature #8675]

History

#1 Updated by Kouji Takao over 1 year ago

  • Due date set to 07/31/2013

ありがとうございます。
7月中には取り込む方向で進めますね。
取り込むならユニットテストもほしいですね。あと、libeditでの動作確認も。

#2 Updated by Kouji Takao over 1 year ago

遅くなりましたが、関連するコミット 42146 も見ました。
「Readline.delete_text後にGNU Readlineの仕様そのままだとReadline.pointが削除されたテキストを考慮していない。そのため、test_readline.rbでは、Readline.pointがリセットされていないことに起因して、テストが失敗するケースがある。」ということですね。

提案いただいているようにReadline.point=は追加します。

でも、Readline.delete_textでReadline.pointが変化しないことはよくなさそうなので、別チケットでそれについて検討してどうにかしたいと思います。

#3 Updated by Kouji Takao over 1 year ago

  • Tracker changed from Bug to Feature

#4 Updated by Kouji Takao over 1 year ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r42405.
Yui, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • ext/readline/readline.c (readline_s_set_point, Init_readline): add Readline.point=(pos). Patched by naruse. [Feature #8675]

Also available in: Atom PDF