patch 8.0.1787: cannot insert the whole cursor line
Problem: Cannot insert the whole cursor line.
Solution: Make CTRL-R CTRL-L work. (Andy Massimino, closes #2857)
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 64914aa..0124098 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -3299,7 +3299,8 @@
/* check for valid regname; also accept special characters for CTRL-R in
* the command line */
if (regname != Ctrl_F && regname != Ctrl_P && regname != Ctrl_W
- && regname != Ctrl_A && !valid_yank_reg(regname, FALSE))
+ && regname != Ctrl_A && regname != Ctrl_L
+ && !valid_yank_reg(regname, FALSE))
return FAIL;
/* A register containing CTRL-R can cause an endless loop. Allow using
diff --git a/src/ops.c b/src/ops.c
index 0902b04..9af466b 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1573,6 +1573,14 @@
*allocated = TRUE;
return TRUE;
+ case Ctrl_L: /* Line under cursor */
+ if (!errmsg)
+ return FALSE;
+
+ *argp = ml_get_buf(curwin->w_buffer,
+ curwin->w_cursor.lnum, FALSE);
+ return TRUE;
+
case '_': /* black hole: always empty */
*argp = (char_u *)"";
return TRUE;
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index ff0756c..a79f276 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -306,6 +306,9 @@
call feedkeys("ft:aaa \<C-R>\<C-F> bbb\<C-B>\"\<CR>", 'tx')
call assert_equal('"aaa /tmp/some bbb', @:)
+ call feedkeys(":aaa \<C-R>\<C-L> bbb\<C-B>\"\<CR>", 'tx')
+ call assert_equal('"aaa '.getline(1).' bbb', @:)
+
set incsearch
call feedkeys("fy:aaa veryl\<C-R>\<C-W> bbb\<C-B>\"\<CR>", 'tx')
call assert_equal('"aaa verylongword bbb', @:)
diff --git a/src/version.c b/src/version.c
index 52b5436..19b83ac 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1787,
+/**/
1786,
/**/
1785,