diff options
Diffstat (limited to 'ext/readline')
-rw-r--r-- | ext/readline/README | 14 | ||||
-rw-r--r-- | ext/readline/readline.c | 34 |
2 files changed, 45 insertions, 3 deletions
diff --git a/ext/readline/README b/ext/readline/README index 8a5fe9120f..affe51f9e6 100644 --- a/ext/readline/README +++ b/ext/readline/README @@ -36,6 +36,17 @@ completion_case_fold 補完時に大文字小文字を区別しない場合、TRUEを返します。 +completion_append_character = char + + 補完時に付加される文字を文字列で指定します。先頭の一文字が + 設定され、空文字列 ("") または nil を指定すると何も付加 + されなくなります。 + +completion_append_character + + 補完時に付加される文字を文字列で返します。デフォルトは + 空白 (" ") です。 + vi_editing_mode VIモードになります。 @@ -50,6 +61,3 @@ HISTORY ヒストリに対する操作はこの定数を通して行ってください。 配列と同じように扱えるようになっています。 - - -
\ No newline at end of file diff --git a/ext/readline/readline.c b/ext/readline/readline.c index c8ed81ac51..6482f942b4 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -167,6 +167,36 @@ readline_s_emacs_editing_mode(self) } static VALUE +readline_s_set_completion_append_character(self, str) + VALUE self, str; +{ + if (NIL_P(str)) { + rl_completion_append_character = '\0'; + } else { + StringValue(str); + + rl_completion_append_character = RSTRING(str)->ptr[0]; + } + + return self; +} + +static VALUE +readline_s_get_completion_append_character(self) + VALUE self; +{ + VALUE str; + + if (rl_completion_append_character == '\0') + return Qnil; + + str = rb_str_new("", 1); + RSTRING(str)->ptr[0] = rl_completion_append_character; + + return str; +} + +static VALUE hist_to_s(self) VALUE self; { @@ -395,6 +425,10 @@ Init_readline() readline_s_vi_editing_mode, 0); rb_define_singleton_method(mReadline, "emacs_editing_mode", readline_s_emacs_editing_mode, 0); + rb_define_singleton_method(mReadline, "completion_append_character=", + readline_s_set_completion_append_character, 1); + rb_define_singleton_method(mReadline, "completion_append_character", + readline_s_get_completion_append_character, 0); histary = rb_obj_alloc(rb_cObject); rb_extend_object(histary, rb_mEnumerable); |