* ext/readline/readline.c (readline_attempted_completion_function):

in Readline module with GNU Readline 6 case, Readline module
  resets completion_append_character to " ", after it executes
  completion. So, Readline module stores
  completion_append_character, and Readline module always sets it
  after Readline module executes completion. [ruby-dev:43456]
  [Feature #4635]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
kouji 2011-12-23 07:38:14 +00:00
Родитель ec4f9d1c60
Коммит 5191ecad6c
2 изменённых файлов: 19 добавлений и 0 удалений

Просмотреть файл

@ -1,3 +1,13 @@
Fri Dec 23 16:14:30 2011 TAKAO Kouji <kouji@takao7.net>
* ext/readline/readline.c (readline_attempted_completion_function):
in Readline module with GNU Readline 6 case, Readline module
resets completion_append_character to " ", after it executes
completion. So, Readline module stores
completion_append_character, and Readline module always sets it
after Readline module executes completion. [ruby-dev:43456]
[Feature #4635]
Fri Dec 23 15:59:05 2011 TAKAO Kouji <kouji@takao7.net>
* ext/readline/readline.c (Init_readline): libedit check

Просмотреть файл

@ -70,6 +70,9 @@ static ID id_orig_prompt, id_last_prompt;
static int (*history_get_offset_func)(int);
static int (*history_replace_offset_func)(int);
#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER
static int readline_completion_append_character;
#endif
static char **readline_attempted_completion_function(const char *text,
int start, int end);
@ -258,6 +261,9 @@ insert_ignore_escape(VALUE self, VALUE prompt)
static VALUE
readline_get(VALUE prompt)
{
#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER
readline_completion_append_character = rl_completion_append_character;
#endif
return (VALUE)readline((char *)prompt);
}
@ -642,6 +648,9 @@ readline_attempted_completion_function(const char *text, int start, int end)
proc = rb_attr_get(mReadline, completion_proc);
if (NIL_P(proc))
return NULL;
#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER
rl_completion_append_character = readline_completion_append_character;
#endif
#ifdef HAVE_RL_ATTEMPTED_COMPLETION_OVER
rl_attempted_completion_over = 1;
#endif