Project

General

Profile

Actions

Feature #8675

closed

Add Readline.point=(pos)

Added by naruse (Yui NARUSE) over 11 years ago. Updated over 11 years ago.

Status:
Closed
Target version:
[ruby-dev:47535]

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",

Updated by kouji (Kouji Takao) over 11 years ago

  • Due date set to 07/31/2013

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

Actions #2

Updated by kouji (Kouji Takao) over 11 years ago

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

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

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

Actions #3

Updated by kouji (Kouji Takao) over 11 years ago

  • Tracker changed from Bug to Feature
Actions #4

Updated by kouji (Kouji Takao) over 11 years 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. [ruby-dev:47535]
    [Feature #8675]
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0