--zCKi3GIZzVBPywwA
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi!
The patch attached gives acces ruby's readline to rl_line_buffer.
It's essential for putting together a context sensitive completion.
(Eg., in case of irb, filename completion within strings, method
name/variable completion elsewhere).
Csaba
--zCKi3GIZzVBPywwA
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="readline-line_buffer.diff"
diff -uNar ruby-orig/ext/readline/readline.c ruby/ext/readline/readline.c
--- ruby-orig/ext/readline/readline.c 2005-03-03 23:47:37.000000000 -0700
+++ ruby/ext/readline/readline.c 2005-03-09 05:36:32.615770664 -0700
@@ -694,6 +694,16 @@
return result;
}
+static VALUE
+readline_s_line_buffer(self)
+ VALUE self;
+{
+ rb_secure(4);
+ if (rl_line_buffer NULL)
+ return Qnil;
+ return rb_tainted_str_new2(rl_line_buffer);
+}
+
void
Init_readline()
{
@@ -746,6 +756,7 @@
readline_s_set_filename_quote_characters, 1);
rb_define_singleton_method(mReadline, "filename_quote_characters",
readline_s_get_filename_quote_characters, 0);
+ rb_define_singleton_method(mReadline, "line_buffer", readline_s_line_buffer, 0);
history b_obj_alloc(rb_cObject);
rb_extend_object(history, rb_mEnumerable);
--zCKi3GIZzVBPywwA--