summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ext/readline/readline.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 7adbde50d7..dce027c5f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jun 20 21:09:37 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+
+ * ext/readline/readline.c (readline_readline): get rid of
+ libreadline's bug. (ruby-bugs-ja:PR#268)
+
Thu Jun 20 17:10:27 2002 WATANABE Hirofumi <eban@ruby-lang.org>
* lib/ftool.rb (BUFSIZE): tuning, set buffer length to 8192.
diff --git a/ext/readline/readline.c b/ext/readline/readline.c
index a6554a5b57..7162042163 100644
--- a/ext/readline/readline.c
+++ b/ext/readline/readline.c
@@ -1,6 +1,7 @@
/* 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>
@@ -44,6 +45,8 @@ readline_readline(argc, argv, self)
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) {