summaryrefslogtreecommitdiff
path: root/ext/readline
diff options
context:
space:
mode:
Diffstat (limited to 'ext/readline')
-rw-r--r--ext/readline/.cvsignore3
-rw-r--r--ext/readline/MANIFEST6
-rw-r--r--ext/readline/README62
-rw-r--r--ext/readline/README.ja63
-rw-r--r--ext/readline/depend1
-rw-r--r--ext/readline/extconf.rb27
-rw-r--r--ext/readline/readline.c743
7 files changed, 0 insertions, 905 deletions
diff --git a/ext/readline/.cvsignore b/ext/readline/.cvsignore
deleted file mode 100644
index 4088712231..0000000000
--- a/ext/readline/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-Makefile
-mkmf.log
-*.def
diff --git a/ext/readline/MANIFEST b/ext/readline/MANIFEST
deleted file mode 100644
index 4dd1d9e1a1..0000000000
--- a/ext/readline/MANIFEST
+++ /dev/null
@@ -1,6 +0,0 @@
-MANIFEST
-README
-README.ja
-depend
-extconf.rb
-readline.c
diff --git a/ext/readline/README b/ext/readline/README
deleted file mode 100644
index 9bbf325c99..0000000000
--- a/ext/readline/README
+++ /dev/null
@@ -1,62 +0,0 @@
-Extension for GNU Readline Library
-
-Example:
-
- require "readline"
- include Readline
-
- line = readline("Prompt> ", true)
-
-[Readline]
-
-<module function>
-
-readline(prompt, add_history=nil)
-
- Reads one line with line editing. The inputted line is added to the
- history if add_history is true.
-
-<class methods>
-
-completion_proc = proc
-
- Specifies a Proc object to determine completion behavior. It
- should take input-string, and return an array of completion
- candidates.
-
-completion_proc
-
- Returns the completion Proc object.
-
-completion_case_fold = bool
-
- Sets whether or not to ignore case on completion.
-
-completion_case_fold
-
- Returns true if completion ignores case.
-
-completion_append_character = char
-
- Specifies a character to be appended on completion.
- Nothing will be appended if an empty string ("") or nil is
- specified.
-
-completion_append_character
-
- Returns a string containing a character to be appended on
- completion. The default is a space (" ").
-
-vi_editing_mode
-
- Specifies VI editing mode.
-
-emacs_editing_mode
-
- Specifies Emacs editing mode.
-
-<class constants>
-
-HISTORY
-
-The history buffer. It behaves just like an array.
diff --git a/ext/readline/README.ja b/ext/readline/README.ja
deleted file mode 100644
index beb951fbf0..0000000000
--- a/ext/readline/README.ja
+++ /dev/null
@@ -1,63 +0,0 @@
-GNU Readline Libraryを利用するための拡張モジュールです。
-
-require "readline"
-include Readline
-
-line = readline("Prompt> ", true)
-
-のように使用してください。
-
-[Readline]
-
-<モジュール関数>
-
-readline(prompt, add_history=nil)
-
- 一行入力を読み込みます。
- add_historyがtrueの場合、ヒストリに読み込んだ文字列を追加します。
-
-<クラスメソッド>
-
-completion_proc = proc
-
- 補完時の動作を決定するProcオブジェクトを指定します。
- procは引数に入力文字列を取り、候補文字列の配列を返すように
- してください。
-
-completion_proc
-
- 補完時の動作を決定するProcオブジェクトを返します。
-
-completion_case_fold = case_fold
-
- 補完時に大文字小文字を区別しない場合、trueを指定します。
-
-completion_case_fold
-
- 補完時に大文字小文字を区別しない場合、trueを返します。
-
-completion_append_character = char
-
- 補完時に付加される文字を文字列で指定します。先頭の一文字が
- 設定され、空文字列 ("") または nil を指定すると何も付加
- されなくなります。
-
-completion_append_character
-
- 補完時に付加される文字を文字列で返します。デフォルトは
- 空白 (" ") です。
-
-vi_editing_mode
-
- VIモードになります。
-
-emacs_editing_mode
-
- Emacsモードになります。
-
-<クラス定数>
-
-HISTORY
-
-ヒストリに対する操作はこの定数を通して行ってください。
-配列と同じように扱えるようになっています。
diff --git a/ext/readline/depend b/ext/readline/depend
deleted file mode 100644
index 6570c5a036..0000000000
--- a/ext/readline/depend
+++ /dev/null
@@ -1 +0,0 @@
-readline.o: readline.c $(hdrdir)/ruby.h $(topdir)/config.h $(hdrdir)/defines.h
diff --git a/ext/readline/extconf.rb b/ext/readline/extconf.rb
deleted file mode 100644
index b883de3e01..0000000000
--- a/ext/readline/extconf.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-require "mkmf"
-
-dir_config("readline")
-have_library("user32", nil) if /cygwin/ === RUBY_PLATFORM
-have_library("ncurses", "tgetnum") or
- have_library("termcap", "tgetnum") or
- have_library("curses", "tgetnum")
-
-if have_header("readline/readline.h") and
- have_header("readline/history.h") and
- have_library("readline", "readline")
- if have_func("rl_filename_completion_function")
- $CFLAGS += " -DREADLINE_42_OR_LATER"
- end
- if have_func("rl_cleanup_after_signal")
- $CFLAGS += " -DREADLINE_40_OR_LATER"
- end
- if try_link(<<EOF, $libs)
-#include <stdio.h>
-#include <readline/readline.h>
-main() {rl_completion_append_character = 1;}
-EOF
- # this feature is implemented in readline-2.1 or later.
- $CFLAGS += " -DREADLINE_21_OR_LATER"
- end
- create_makefile("readline")
-end
diff --git a/ext/readline/readline.c b/ext/readline/readline.c
deleted file mode 100644
index cac0b1d11c..0000000000
--- a/ext/readline/readline.c
+++ /dev/null
@@ -1,743 +0,0 @@
-/* readline.c -- GNU Readline module
- Copyright (C) 1997-2001 Shugo Maeda */
-
-#include <errno.h>
-#include <stdio.h>
-#include <readline/readline.h>
-#include <readline/history.h>
-
-#include "ruby.h"
-#include "rubysig.h"
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-static VALUE mReadline;
-
-#define TOLOWER(c) (isupper(c) ? tolower(c) : c)
-
-#define COMPLETION_PROC "completion_proc"
-#define COMPLETION_CASE_FOLD "completion_case_fold"
-
-#ifndef READLINE_42_OR_LATER
-# define rl_filename_completion_function filename_completion_function
-# define rl_username_completion_function username_completion_function
-# define rl_completion_matches completion_matches
-#endif
-
-static int
-readline_event()
-{
- CHECK_INTS;
- rb_thread_schedule();
- return 0;
-}
-
-static VALUE
-readline_readline(argc, argv, self)
- int argc;
- VALUE *argv;
- VALUE self;
-{
- VALUE tmp, add_hist, result;
- char *prompt = NULL;
- char *buff;
- int status;
-
- if (rb_scan_args(argc, argv, "02", &tmp, &add_hist) > 0) {
- prompt = StringValuePtr(tmp);
- }
-
- if (!isatty(0) && errno == EBADF) rb_raise(rb_eIOError, "stdin closed");
-
- buff = (char*)rb_protect((VALUE(*)_((VALUE)))readline, (VALUE)prompt,
- &status);
- if (status) {
-#if defined READLINE_40_OR_LATER
- /* restore terminal mode and signal handler*/
- rl_cleanup_after_signal();
-#elif defined READLINE_21_OR_LATER
- /* restore terminal mode */
- (*rl_deprep_term_function)();
-#else
- rl_deprep_terminal();
-#endif
- rb_jump_tag(status);
- }
-
- if (RTEST(add_hist) && buff) {
- add_history(buff);
- }
- if (buff)
- result = rb_tainted_str_new2(buff);
- else
- result = Qnil;
- if (buff) free(buff);
- return result;
-}
-
-static VALUE
-readline_s_set_completion_proc(self, proc)
- VALUE self;
- VALUE proc;
-{
- if (!rb_respond_to(proc, rb_intern("call")))
- rb_raise(rb_eArgError, "argument have to respond to `call'");
- return rb_iv_set(mReadline, COMPLETION_PROC, proc);
-}
-
-static VALUE
-readline_s_get_completion_proc(self)
- VALUE self;
-{
- return rb_iv_get(mReadline, COMPLETION_PROC);
-}
-
-static VALUE
-readline_s_set_completion_case_fold(self, val)
- VALUE self;
- VALUE val;
-{
- return rb_iv_set(mReadline, COMPLETION_CASE_FOLD, val);
-}
-
-static VALUE
-readline_s_get_completion_case_fold(self)
- VALUE self;
-{
- return rb_iv_get(mReadline, COMPLETION_CASE_FOLD);
-}
-
-static char **
-readline_attempted_completion_function(text, start, end)
- char *text;
- int start;
- int end;
-{
- VALUE proc, ary, temp;
- char **result;
- int case_fold;
- int i, matches;
-
- proc = rb_iv_get(mReadline, COMPLETION_PROC);
- if (NIL_P(proc))
- return NULL;
- rl_attempted_completion_over = 1;
- case_fold = RTEST(rb_iv_get(mReadline, COMPLETION_CASE_FOLD));
- ary = rb_funcall(proc, rb_intern("call"), 1, rb_tainted_str_new2(text));
- if (TYPE(ary) != T_ARRAY)
- ary = rb_Array(ary);
- matches = RARRAY(ary)->len;
- if (matches == 0)
- return NULL;
- result = ALLOC_N(char *, matches + 2);
- for (i = 0; i < matches; i++) {
- temp = rb_obj_as_string(RARRAY(ary)->ptr[i]);
- result[i + 1] = ALLOC_N(char, RSTRING(temp)->len + 1);
- strcpy(result[i + 1], RSTRING(temp)->ptr);
- }
- result[matches + 1] = NULL;
-
- if (matches == 1) {
- result[0] = result[1];
- result[1] = NULL;
- } else {
- register int i = 1;
- int low = 100000;
-
- while (i < matches) {
- register int c1, c2, si;
-
- if (case_fold) {
- for (si = 0;
- (c1 = TOLOWER(result[i][si])) &&
- (c2 = TOLOWER(result[i + 1][si]));
- si++)
- if (c1 != c2) break;
- } else {
- for (si = 0;
- (c1 = result[i][si]) &&
- (c2 = result[i + 1][si]);
- si++)
- if (c1 != c2) break;
- }
-
- if (low > si) low = si;
- i++;
- }
- result[0] = ALLOC_N(char, low + 1);
- strncpy(result[0], result[1], low);
- result[0][low] = '\0';
- }
-
- return result;
-}
-
-static VALUE
-readline_s_vi_editing_mode(self)
- VALUE self;
-{
- rl_vi_editing_mode(1,0);
- return Qnil;
-}
-
-static VALUE
-readline_s_emacs_editing_mode(self)
- VALUE self;
-{
- rl_emacs_editing_mode(1,0);
- return Qnil;
-}
-
-static VALUE
-readline_s_set_completion_append_character(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- if (NIL_P(str) || !StringValuePtr(str) || !RSTRING(str)->len) {
- rl_completion_append_character = '\0';
- } else {
- rl_completion_append_character = RSTRING(str)->ptr[0];
- }
-
- return self;
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_get_completion_append_character(self)
- VALUE self;
-{
-#ifdef READLINE_21_OR_LATER
- 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;
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_set_basic_word_break_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- static char *basic_word_break_characters = NULL;
-
- StringValue(str);
- if (basic_word_break_characters == NULL) {
- basic_word_break_characters =
- ALLOC_N(char, RSTRING(str)->len + 1);
- }
- else {
- REALLOC_N(basic_word_break_characters, char, RSTRING(str)->len + 1);
- }
- strncpy(basic_word_break_characters,
- RSTRING(str)->ptr, RSTRING(str)->len);
- basic_word_break_characters[RSTRING(str)->len] = '\0';
- rl_basic_word_break_characters = basic_word_break_characters;
-
- return self;
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_get_basic_word_break_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- if (rl_basic_word_break_characters == NULL)
- return Qnil;
- return rb_str_new2(rl_basic_word_break_characters);
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_set_completer_word_break_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- static char *completer_word_break_characters = NULL;
-
- StringValue(str);
- if (completer_word_break_characters == NULL) {
- completer_word_break_characters =
- ALLOC_N(char, RSTRING(str)->len + 1);
- }
- else {
- REALLOC_N(completer_word_break_characters, char, RSTRING(str)->len + 1);
- }
- strncpy(completer_word_break_characters,
- RSTRING(str)->ptr, RSTRING(str)->len);
- completer_word_break_characters[RSTRING(str)->len] = '\0';
- rl_completer_word_break_characters = completer_word_break_characters;
-
- return self;
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_get_completer_word_break_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- if (rl_completer_word_break_characters == NULL)
- return Qnil;
- return rb_str_new2(rl_completer_word_break_characters);
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_set_basic_quote_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- static char *basic_quote_characters = NULL;
-
- StringValue(str);
- if (basic_quote_characters == NULL) {
- basic_quote_characters =
- ALLOC_N(char, RSTRING(str)->len + 1);
- }
- else {
- REALLOC_N(basic_quote_characters, char, RSTRING(str)->len + 1);
- }
- strncpy(basic_quote_characters,
- RSTRING(str)->ptr, RSTRING(str)->len);
- basic_quote_characters[RSTRING(str)->len] = '\0';
- rl_basic_quote_characters = basic_quote_characters;
-
- return self;
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_get_basic_quote_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- if (rl_basic_quote_characters == NULL)
- return Qnil;
- return rb_str_new2(rl_basic_quote_characters);
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_set_completer_quote_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- static char *completer_quote_characters = NULL;
-
- StringValue(str);
- if (completer_quote_characters == NULL) {
- completer_quote_characters =
- ALLOC_N(char, RSTRING(str)->len + 1);
- }
- else {
- REALLOC_N(completer_quote_characters, char, RSTRING(str)->len + 1);
- }
- strncpy(completer_quote_characters,
- RSTRING(str)->ptr, RSTRING(str)->len);
- completer_quote_characters[RSTRING(str)->len] = '\0';
- rl_completer_quote_characters = completer_quote_characters;
-
- return self;
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_get_completer_quote_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- if (rl_completer_quote_characters == NULL)
- return Qnil;
- return rb_str_new2(rl_completer_quote_characters);
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_set_filename_quote_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- static char *filename_quote_characters = NULL;
-
- StringValue(str);
- if (filename_quote_characters == NULL) {
- filename_quote_characters =
- ALLOC_N(char, RSTRING(str)->len + 1);
- }
- else {
- REALLOC_N(filename_quote_characters, char, RSTRING(str)->len + 1);
- }
- strncpy(filename_quote_characters,
- RSTRING(str)->ptr, RSTRING(str)->len);
- filename_quote_characters[RSTRING(str)->len] = '\0';
- rl_filename_quote_characters = filename_quote_characters;
-
- return self;
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-readline_s_get_filename_quote_characters(self, str)
- VALUE self, str;
-{
-#ifdef READLINE_21_OR_LATER
- if (rl_filename_quote_characters == NULL)
- return Qnil;
- return rb_str_new2(rl_filename_quote_characters);
-#else
- rb_notimplement();
-#endif /* READLINE_21_OR_LATER */
-}
-
-static VALUE
-rb_remove_history(index)
- int index;
-{
- HIST_ENTRY *entry;
- VALUE val;
-
- entry = remove_history(index);
- if (entry) {
- val = rb_tainted_str_new2(entry->line);
- free(entry->line);
- free(entry);
- return val;
- }
- return Qnil;
-}
-
-static VALUE
-hist_to_s(self)
- VALUE self;
-{
- return rb_str_new2("HISTORY");
-}
-
-static VALUE
-hist_get(self, index)
- VALUE self;
- VALUE index;
-{
- HISTORY_STATE *state;
- int i;
-
- state = history_get_history_state();
- i = NUM2INT(index);
- if (i < 0) {
- i += state->length;
- }
- if (i < 0 || i > state->length - 1) {
- rb_raise(rb_eIndexError, "Invalid index");
- }
- return rb_tainted_str_new2(state->entries[i]->line);
-}
-
-static VALUE
-hist_set(self, index, str)
- VALUE self;
- VALUE index;
- VALUE str;
-{
- HISTORY_STATE *state;
- VALUE s = str;
- int i;
-
- state = history_get_history_state();
- i = NUM2INT(index);
- if (i < 0) {
- i += state->length;
- }
- if (i < 0 || i > state->length - 1) {
- rb_raise(rb_eIndexError, "Invalid index");
- }
- replace_history_entry(i, StringValuePtr(s), NULL);
- return str;
-}
-
-static VALUE
-hist_push(self, str)
- VALUE self;
- VALUE str;
-{
- add_history(StringValuePtr(str));
- return self;
-}
-
-static VALUE
-hist_push_method(argc, argv, self)
- int argc;
- VALUE *argv;
- VALUE self;
-{
- VALUE str;
-
- while (argc--) {
- str = *argv++;
- add_history(StringValuePtr(str));
- }
- return self;
-}
-
-static VALUE
-hist_pop(self)
- VALUE self;
-{
- HISTORY_STATE *state;
-
- state = history_get_history_state();
- if (state->length > 0) {
- return rb_remove_history(state->length - 1);
- } else {
- return Qnil;
- }
-}
-
-static VALUE
-hist_shift(self)
- VALUE self;
-{
- HISTORY_STATE *state;
-
- state = history_get_history_state();
- if (state->length > 0) {
- return rb_remove_history(0);
- } else {
- return Qnil;
- }
-}
-
-static VALUE
-hist_each(self)
- VALUE self;
-{
- HISTORY_STATE *state;
- int i;
-
- state = history_get_history_state();
- for (i = 0; i < state->length; i++) {
- rb_yield(rb_tainted_str_new2(state->entries[i]->line));
- }
- return self;
-}
-
-static VALUE
-hist_length(self)
- VALUE self;
-{
- HISTORY_STATE *state;
-
- state = history_get_history_state();
- return INT2NUM(state->length);
-}
-
-static VALUE
-hist_empty_p(self)
- VALUE self;
-{
- HISTORY_STATE *state;
-
- state = history_get_history_state();
- if (state->length == 0)
- return Qtrue;
- else
- return Qfalse;
-}
-
-static VALUE
-hist_delete_at(self, index)
- VALUE self;
- VALUE index;
-{
- HISTORY_STATE *state;
- int i;
-
- state = history_get_history_state();
- i = NUM2INT(index);
- if (i < 0)
- i += state->length;
- if (i < 0 || i > state->length - 1) {
- rb_raise(rb_eIndexError, "Invalid index");
- }
- return rb_remove_history(i);
-}
-
-static VALUE
-filename_completion_proc_call(self, str)
- VALUE self;
- VALUE str;
-{
- VALUE result;
- char **matches;
- int i;
-
- matches = rl_completion_matches(StringValuePtr(str),
- rl_filename_completion_function);
- if (matches) {
- result = rb_ary_new();
- for (i = 0; matches[i]; i++) {
- rb_ary_push(result, rb_tainted_str_new2(matches[i]));
- free(matches[i]);
- }
- free(matches);
- if (RARRAY(result)->len >= 2)
- rb_ary_shift(result);
- }
- else {
- result = Qnil;
- }
- return result;
-}
-
-static VALUE
-username_completion_proc_call(self, str)
- VALUE self;
- VALUE str;
-{
- VALUE result;
- char **matches;
- int i;
-
- matches = rl_completion_matches(StringValuePtr(str),
- rl_username_completion_function);
- if (matches) {
- result = rb_ary_new();
- for (i = 0; matches[i]; i++) {
- rb_ary_push(result, rb_tainted_str_new2(matches[i]));
- free(matches[i]);
- }
- free(matches);
- if (RARRAY(result)->len >= 2)
- rb_ary_shift(result);
- }
- else {
- result = Qnil;
- }
- return result;
-}
-
-void
-Init_readline()
-{
- VALUE history, fcomp, ucomp;
-
- /* Allow conditional parsing of the ~/.inputrc file. */
- rl_readline_name = "Ruby";
-
- using_history();
-
- mReadline = rb_define_module("Readline");
- rb_define_module_function(mReadline, "readline",
- readline_readline, -1);
- rb_define_singleton_method(mReadline, "completion_proc=",
- readline_s_set_completion_proc, 1);
- rb_define_singleton_method(mReadline, "completion_proc",
- readline_s_get_completion_proc, 0);
- rb_define_singleton_method(mReadline, "completion_case_fold=",
- readline_s_set_completion_case_fold, 1);
- rb_define_singleton_method(mReadline, "completion_case_fold",
- 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, "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);
- rb_define_singleton_method(mReadline, "basic_word_break_characters=",
- readline_s_set_basic_word_break_characters, 1);
- rb_define_singleton_method(mReadline, "basic_word_break_characters",
- readline_s_get_basic_word_break_characters, 0);
- rb_define_singleton_method(mReadline, "completer_word_break_characters=",
- readline_s_set_completer_word_break_characters, 1);
- rb_define_singleton_method(mReadline, "completer_word_break_characters",
- readline_s_get_completer_word_break_characters, 0);
- rb_define_singleton_method(mReadline, "basic_quote_characters=",
- readline_s_set_basic_quote_characters, 1);
- rb_define_singleton_method(mReadline, "basic_quote_characters",
- readline_s_get_basic_quote_characters, 0);
- rb_define_singleton_method(mReadline, "completer_quote_characters=",
- readline_s_set_completer_quote_characters, 1);
- rb_define_singleton_method(mReadline, "completer_quote_characters",
- readline_s_get_completer_quote_characters, 0);
- rb_define_singleton_method(mReadline, "filename_quote_characters=",
- readline_s_set_filename_quote_characters, 1);
- rb_define_singleton_method(mReadline, "filename_quote_characters",
- readline_s_get_filename_quote_characters, 0);
-
- history = rb_obj_alloc(rb_cObject);
- rb_extend_object(history, rb_mEnumerable);
- rb_define_singleton_method(history,"to_s", hist_to_s, 0);
- rb_define_singleton_method(history,"[]", hist_get, 1);
- rb_define_singleton_method(history,"[]=", hist_set, 2);
- rb_define_singleton_method(history,"<<", hist_push, 1);
- rb_define_singleton_method(history,"push", hist_push_method, -1);
- rb_define_singleton_method(history,"pop", hist_pop, 0);
- rb_define_singleton_method(history,"shift", hist_shift, 0);
- rb_define_singleton_method(history,"each", hist_each, 0);
- rb_define_singleton_method(history,"length", hist_length, 0);
- rb_define_singleton_method(history,"size", hist_length, 0);
-
- rb_define_singleton_method(history,"empty?", hist_empty_p, 0);
- rb_define_singleton_method(history,"delete_at", hist_delete_at, 1);
- rb_define_const(mReadline, "HISTORY", history);
-
- fcomp = rb_obj_alloc(rb_cObject);
- rb_define_singleton_method(fcomp, "call",
- filename_completion_proc_call, 1);
- rb_define_const(mReadline, "FILENAME_COMPLETION_PROC", fcomp);
-
- ucomp = rb_obj_alloc(rb_cObject);
- rb_define_singleton_method(ucomp, "call",
- username_completion_proc_call, 1);
- rb_define_const(mReadline, "USERNAME_COMPLETION_PROC", ucomp);
-#if defined READLINE_21_OR_LATER
- rb_define_const(mReadline, "VERSION", rb_str_new2(rl_library_version));
-#else
- rb_define_const(mReadline, "VERSION",
- rb_str_new2("2.0 or before version"));
-#endif
-
-#if defined READLINE_42_OR_LATER
- rl_attempted_completion_function
- = (rl_completion_func_t *)readline_attempted_completion_function;
- rl_event_hook = (rl_hook_func_t *)readline_event;
-#else
- rl_attempted_completion_function
- = (CPPFunction *) readline_attempted_completion_function;
- rl_event_hook = readline_event;
-#endif
- rl_clear_signals();
-}