From: "kouji (Kouji Takao)" Date: 2013-07-10T06:33:57+09:00 Subject: [ruby-dev:47497] [ruby-trunk - Feature #6626] Readline.delete_text Issue #6626 has been updated by kouji (Kouji Takao). 大変遅くなりましたが、これを取り込もうと思って作業しています。 手元の環境(Mac OS X 10.7, GNU Readline 6.2)での動作確認は終わりました。 あと、Mac OSに標準添付されているEditLine(libedit)での動作を確認したらcommitしようかなと思っていたのですが、 このパッチには、string.cで定義されているrb_str_subpos関数を非公開から公開にする修正が含まれています。これを取り込んでもいいものなのか私では判断できませんでした。rb_str_subpos関数と同様の処理をext/readline/readline.cで実装すればrb_str_subpos関数を非公開のままにできると思って、rb_str_subpos関数を見てみましたが、なかなか長い処理なのですね... すみませんが、どなたかrb_str_subpos関数を非公開から公開に変更してもよいかどうか判断していただけないでしょうか? 修正したい理由は、Readlineモジュールに対して本チケットで提案されている機能を実現するために、Readlineモジュールからrb_str_subpos関数を利用したいためです。利用できない場合は、rb_str_subpos関数と同様の処理をReadlineモジュールにも実装することになり、コードの重複がうまれ、メンテナンス性が悪くなると考えています。 ---------------------------------------- Feature #6626: Readline.delete_text https://bugs.ruby-lang.org/issues/6626#change-40385 Author: nobu (Nobuyoshi Nakada) Status: Assigned Priority: Normal Assignee: kouji (Kouji Takao) Category: ext Target version: next minor =begin [Feature #5785]でinsert_textなどが追加されましたが、line_bufferを編集するためにはdelete_textも必要ではないでしょうか。 現状ではline_bufferから文字を削除するためには、test_readline.rbでやっているように、かなり周りくどい上にキーバインディングに依存する処理が必要になります。 パッチは(())です。 --- Readline.delete_text(start=0[, length]) -> self startからlength文字を削除する。 lengthが省略された場合は末尾までを削除する。 startも省略された場合はすべてを削除する。 --- Readline.delete_text(start..end) -> self startからendまでの範囲内の文字を削除する。 =end -- http://bugs.ruby-lang.org/