From 3fd16970f3a6b4d33d6e6397e5570e9ee0e2a368 Mon Sep 17 00:00:00 2001 From: shugo Date: Thu, 19 May 2005 14:36:20 +0000 Subject: * ext/readline/readline.c: supported libedit. fixed: [ruby-core:4858] * ext/readline/extconf.rb: added new option --enable-libedit. * test/readline/test_readline.rb: added assertions for Readline::HISTORY. * lib/irb/input-method.rb: do not use Readline::HISTORY.pop. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/readline/extconf.rb | 66 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 48 insertions(+), 18 deletions(-) (limited to 'ext/readline/extconf.rb') diff --git a/ext/readline/extconf.rb b/ext/readline/extconf.rb index d8d8643d08..e3aabeae89 100644 --- a/ext/readline/extconf.rb +++ b/ext/readline/extconf.rb @@ -1,30 +1,60 @@ require "mkmf" +$readline_headers = ["stdio.h"] + +def have_readline_header(header) + if have_header(header) + $readline_headers.push(header) + return true + else + return false + end +end + +def have_readline_var(var) + return have_var(var, $readline_headers) +end + dir_config('curses') dir_config('ncurses') dir_config('termcap') dir_config("readline") +enable_libedit = enable_config("libedit") have_library("user32", nil) if /cygwin/ === RUBY_PLATFORM -have_library("ncurses", "tgetnum") or - have_library("termcap", "tgetnum") or +have_library("ncurses", "tgetnum") || + have_library("termcap", "tgetnum") || 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" +if enable_libedit + unless (have_readline_header("editline/readline.h") || + have_readline_header("readline/readline.h")) && + have_library("edit", "readline") + exit end - if have_func("rl_cleanup_after_signal") - $CFLAGS += " -DREADLINE_40_OR_LATER" +else + unless ((have_readline_header("readline/readline.h") && + have_readline_header("readline/history.h")) && + (have_library("readline", "readline") || + have_library("edit", "readline"))) || + (have_readline_header("editline/readline.h") && + have_library("edit", "readline")) + exit end - if try_link(< -#include -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 + +have_readline_var("rl_filename_completion_function") +have_readline_var("rl_deprep_term_function") +have_readline_var("rl_completion_append_character") +have_readline_var("rl_basic_word_break_characters") +have_readline_var("rl_completer_word_break_characters") +have_readline_var("rl_basic_quote_characters") +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_event_hook") +have_func("rl_cleanup_after_signal") +have_func("rl_clear_signals") +have_func("replace_history_entry") +have_func("remove_history") +create_makefile("readline") -- cgit v1.2.3