From: Takahiro Kambe Date: 2006-12-14T01:14:42+09:00 Subject: [ruby-dev:30008] ext/readline こんばんは。 Ruby 1.8のブランチ(2006/12/05)のext/readlineがNetBSD currentでコンパイ ルできない場合があります。 ext/readline/extconf.rbでは、 have_readline_var("rl_filename_completion_function") とチェックして、ext/readline/readline.cでは、 #ifndef HAVE_RL_FILENAME_COMPLETION_FUNCTION # define rl_filename_completion_function filename_completion_function # define rl_username_completion_function username_completion_function # define rl_completion_matches completion_matches #endif としています。NetBSDのeditlineライブラリは、GNU readlineへの互換関数を 用意していますが、rl_filename_completion_function()はあるものの、 rl_username_completion_function()やrl_completion_matches()はありません。 (NetBSD 3.xまでは、rl_filename_completion_function()もありませんでした。) 個別にそれぞれの関数をチェックするようにして、この問題は回避できます。 (extconf.rbの方は行番号がちょっとずれています。) --- extconf.rb.orig 2005-05-25 22:01:56.000000000 +0900 +++ extconf.rb @@ -43,6 +40,8 @@ else end have_readline_var("rl_filename_completion_function") +have_readline_var("rl_username_completion_function") +have_readline_var("rl_completion_matches") have_readline_var("rl_deprep_term_function") have_readline_var("rl_completion_append_character") have_readline_var("rl_basic_word_break_characters") --- readline.c.orig 2006-08-07 18:01:27.000000000 +0900 +++ readline.c @@ -34,7 +34,11 @@ static ID completion_proc, completion_ca #ifndef HAVE_RL_FILENAME_COMPLETION_FUNCTION # define rl_filename_completion_function filename_completion_function +#endif +#ifndef HAVE_RL_USERNAME_COMPLETION_FUNCTION # define rl_username_completion_function username_completion_function +#endif +#ifndef HAVE_RL_COMPLETION_MATCHES # define rl_completion_matches completion_matches #endif -- 神戸 隆博 / Takahiro Kambe