[ruby-dev:47937] [ruby-trunk - Bug #8782] Don't set rl_getc_function on editline
From:
shibata.hiroshi@...
Date:
2014-01-30 06:17:10 UTC
List:
ruby-dev #47937
Issue #8782 has been updated by Hiroshi SHIBATA.
Target version changed from 2.1.0 to current: 2.2.0
----------------------------------------
Bug #8782: Don't set rl_getc_function on editline
https://bugs.ruby-lang.org/issues/8782#change-44792
* Author: Yui NARUSE
* Status: Assigned
* Priority: Normal
* Assignee: Kouji Takao
* Category: ext
* Target version: current: 2.2.0
* ruby -v: ruby 2.1.0dev (2013-08-12 trunk 42528) [x86_64-darwin12.4.0]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
----------------------------------------
r42402 =E4=BB=A5=E6=9D=A5 OS X =E7=AD=89=E3=81=AE editline =E7=92=B0=E5=A2=
=83=E3=81=A7=E3=81=AF #define rl_getc(f) EOF =E3=81=8C=E4=BD=BF=E3=82=8F=E3=
=82=8C=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=
=97=E3=81=BE=E3=81=A3=E3=81=A6=E6=AE=8B=E5=BF=B5=E3=81=AA=E3=81=93=E3=81=A8=
=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F=E3=82=8F=E3=81=91=E3=
=81=A7=E3=81=99=E3=81=8C=E3=80=81
=E3=81=9D=E3=82=82=E3=81=9D=E3=82=82 editline =E3=81=AE readline wrapper =
=E3=81=AF non ASCII =E3=81=AB=E5=AF=BE=E5=BF=9C=E3=81=97=E3=81=A6=E3=81=84=
=E3=81=BE=E3=81=9B=E3=82=93=E3=80=82
(editline =E8=87=AA=E4=BD=93=E3=81=AB=E3=81=AF UTF-8 =E3=81=AE=E3=81=BF=E3=
=81=AE=E5=AF=BE=E5=BF=9C=E3=81=8C=E5=85=A5=E3=81=A3=E3=81=9F=E3=81=8C=E3=80=
=81readline wrapper =E3=81=AF src/readline.c =E3=81=AE _getc_function =E3=
=82=92=E7=B5=8C=E7=94=B1=E3=81=99=E3=82=8B=E3=81=AE=E3=81=A7 non ASCII =E3=
=81=AF=E5=8C=96=E3=81=91=E3=82=8B)
=E3=81=AE=E3=81=A7=E3=80=81=E3=81=84=E3=81=A3=E3=81=9D rl_getc_function =E3=
=82=92=E4=BD=BF=E3=82=8F=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E3=81=AB=E3=81=
=97=E3=81=A6=E3=81=AF=E3=81=A9=E3=81=86=E3=81=A7=E3=81=97=E3=82=87=E3=81=86=
=E3=80=82
=E4=BB=A5=E4=B8=8B=E3=81=AE=E3=82=88=E3=81=86=E3=81=AA=E3=83=91=E3=83=83=E3=
=83=81=E3=82=92=E5=BD=93=E3=81=A6=E3=82=8B=E3=81=A8=E3=80=81readline =E3=81=
=AA=E3=81=97=E3=81=AE OS X =E3=81=AE irb =E3=81=A7=E6=97=A5=E6=9C=AC=E8=AA=
=9E=E3=81=8C=E4=BD=BF=E3=81=88=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=AA=
=E3=82=8A=E3=81=BE=E3=81=99=E3=80=82
diff --git a/ext/readline/extconf.rb b/ext/readline/extconf.rb
index 0b121c1..bc0ee77 100644
--- a/ext/readline/extconf.rb
+++ b/ext/readline/extconf.rb
@@ -94,4 +94,5 @@ readline.have_func("clear_history")
readline.have_func("rl_redisplay")
readline.have_func("rl_insert_text")
readline.have_func("rl_delete_text")
+readline.have_func("el_init")
create_makefile("readline")
diff --git a/ext/readline/readline.c b/ext/readline/readline.c
index 0f76d1a..85109f0 100644
--- a/ext/readline/readline.c
+++ b/ext/readline/readline.c
@@ -130,12 +130,7 @@ static VALUE readline_instream;
static VALUE readline_outstream;
#if defined HAVE_RL_GETC_FUNCTION
-
-#ifndef HAVE_RL_GETC
-#define rl_getc(f) EOF
-#endif
-
-static int readline_getc(FILE *);
+# ifndef HAVE_EL_INIT
static int
readline_getc(FILE *input)
{
@@ -187,6 +182,7 @@ readline_getc(FILE *input)
#endif
return FIX2INT(c);
}
+# endif
#elif defined HAVE_RL_EVENT_HOOK
#define BUSY_WAIT 0
@@ -1771,7 +1767,9 @@ Init_readline()
/* libedit check rl_getc_function only when rl_initialize() is called,=
*/
/* and using_history() call rl_initialize(). */
/* This assignment should be placed before using_history() */
+# ifndef HAVE_EL_INIT
rl_getc_function =3D readline_getc;
+# endif
#elif defined HAVE_RL_EVENT_HOOK
rl_event_hook =3D readline_event;
#endif
--=20
http://bugs.ruby-lang.org/