summaryrefslogtreecommitdiff
path: root/ext/readline
diff options
context:
space:
mode:
Diffstat (limited to 'ext/readline')
-rw-r--r--ext/readline/readline.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/ext/readline/readline.c b/ext/readline/readline.c
index 35facdd654..f51d64336d 100644
--- a/ext/readline/readline.c
+++ b/ext/readline/readline.c
@@ -896,8 +896,25 @@ readline_s_get_point(VALUE self)
{
return INT2NUM(rl_point);
}
+
+/*
+ * call-seq:
+ * Readline.point = int
+ *
+ * Set the index of the current cursor position in
+ * +Readline.line_buffer+.
+ *
+ * See +Readline.point+.
+ */
+static VALUE
+readline_s_set_point(VALUE self, VALUE pos)
+{
+ rl_point = NUM2INT(pos);
+ return pos;
+}
#else
#define readline_s_get_point rb_f_notimplement
+#define readline_s_set_point rb_f_notimplement
#endif
static char **
@@ -1849,6 +1866,8 @@ Init_readline()
readline_s_get_line_buffer, 0);
rb_define_singleton_method(mReadline, "point",
readline_s_get_point, 0);
+ rb_define_singleton_method(mReadline, "point=",
+ readline_s_set_point, 1);
rb_define_singleton_method(mReadline, "set_screen_size",
readline_s_set_screen_size, 2);
rb_define_singleton_method(mReadline, "get_screen_size",