diff options
author | kouji <kouji@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-11 08:31:45 +0000 |
---|---|---|
committer | kouji <kouji@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-11 08:31:45 +0000 |
commit | aa2a222f9c515d4221f07510723385ad03ae4d21 (patch) | |
tree | 9fd170b3636275b5ae2cc1fa5ff2eb692fcaf244 /ext/readline | |
parent | e956f28724a40de9b51b8d049e259af96dc738d5 (diff) |
* ext/readline/README.ja: added API document for
Readline.vi_editing_mode? and Readline.emacs_editing_mode?.
* ext/readline/extconf.rb: checked rl_editing_mode variable in
Readline library.
* ext/readline/readline.c (readline_s_emacs_editing_mode_p): added
Readline.emacs_editing_mode? method.
(readline_s_vi_editing_mode_p): added Readline.vi_editing_mode?
method.
(Init_readline): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/readline')
-rw-r--r-- | ext/readline/README.ja | 18 | ||||
-rw-r--r-- | ext/readline/extconf.rb | 1 | ||||
-rw-r--r-- | ext/readline/readline.c | 48 |
3 files changed, 67 insertions, 0 deletions
diff --git a/ext/readline/README.ja b/ext/readline/README.ja index b8337780f5..fda469d07a 100644 --- a/ext/readline/README.ja +++ b/ext/readline/README.ja @@ -186,6 +186,15 @@ Readline.vi_editing_mode -> nil $SAFE が 4 の場合、例外 SecurityError が発生します。 +Readline.vi_editing_mode? -> bool + + 編集モードが vi モードの場合、true を返します。そうでなければ false + を返します。 + + サポートしていない環境では、例外 NotImplementedError が発生します。 + + $SAFE が 4 の場合、例外 SecurityError が発生します。 + Readline.emacs_editing_mode -> nil 編集モードを Emacs モードにします。 @@ -196,6 +205,15 @@ Readline.emacs_editing_mode -> nil $SAFE が 4 の場合、例外 SecurityError が発生します。 +Readline.emacs_editing_mode? -> bool + + 編集モードが Emacs モードの場合、true を返します。そうでなければ false + を返します。 + + サポートしていない環境では、例外 NotImplementedError が発生します。 + + $SAFE が 4 の場合、例外 SecurityError が発生します。 + Readline.completion_append_character = char ユーザの入力の補完が完了した場合に、最後に付加する文字 char を指定し diff --git a/ext/readline/extconf.rb b/ext/readline/extconf.rb index 84fb9b14a6..1d74e29124 100644 --- a/ext/readline/extconf.rb +++ b/ext/readline/extconf.rb @@ -58,6 +58,7 @@ have_readline_var("rl_completer_quote_characters") have_readline_var("rl_filename_quote_characters") have_readline_var("rl_attempted_completion_over") have_readline_var("rl_library_version") +have_readline_var("rl_editing_mode") # workaround for native windows. /mswin|bccwin|mingw/ !~ RUBY_PLATFORM && have_readline_var("rl_event_hook") have_readline_func("rl_cleanup_after_signal") diff --git a/ext/readline/readline.c b/ext/readline/readline.c index 7f80f83704..41914dca01 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -457,6 +457,28 @@ readline_s_vi_editing_mode(VALUE self) /* * call-seq: + * Readline.vi_editing_mode? -> bool + * + * Returns true if vi mode is active. Returns false if not. + * + * Raises NotImplementedError if the using readline library does not support. + * + * Raises SecurityError exception if $SAFE is 4. + */ +static VALUE +readline_s_vi_editing_mode_p(VALUE self) +{ +#ifdef HAVE_RL_EDITING_MODE + rb_secure(4); + return rl_editing_mode == 0 ? Qtrue : Qfalse; +#else + rb_notimplement(); + return Qnil; /* not reached */ +#endif /* HAVE_RL_EDITING_MODE */ +} + +/* + * call-seq: * Readline.emacs_editing_mode -> nil * * Specifies Emacs editing mode. The default is this mode. See the @@ -481,6 +503,28 @@ readline_s_emacs_editing_mode(VALUE self) /* * call-seq: + * Readline.emacs_editing_mode? -> bool + * + * Returns true if emacs mode is active. Returns false if not. + * + * Raises NotImplementedError if the using readline library does not support. + * + * Raises SecurityError exception if $SAFE is 4. + */ +static VALUE +readline_s_emacs_editing_mode_p(VALUE self) +{ +#ifdef HAVE_RL_EDITING_MODE + rb_secure(4); + return rl_editing_mode == 1 ? Qtrue : Qfalse; +#else + rb_notimplement(); + return Qnil; /* not reached */ +#endif /* HAVE_RL_EDITING_MODE */ +} + +/* + * call-seq: * Readline.completion_append_character = char * * Specifies a character to be appended on completion. @@ -1154,8 +1198,12 @@ Init_readline() readline_s_get_completion_case_fold, 0); rb_define_singleton_method(mReadline, "vi_editing_mode", readline_s_vi_editing_mode, 0); + rb_define_singleton_method(mReadline, "vi_editing_mode?", + readline_s_vi_editing_mode_p, 0); rb_define_singleton_method(mReadline, "emacs_editing_mode", readline_s_emacs_editing_mode, 0); + rb_define_singleton_method(mReadline, "emacs_editing_mode?", + readline_s_emacs_editing_mode_p, 0); rb_define_singleton_method(mReadline, "completion_append_character=", readline_s_set_completion_append_character, 1); rb_define_singleton_method(mReadline, "completion_append_character", |