patch 7.4.973
Problem: When pasting on the command line line breaks result in literal
<CR> characters. This makes pasting a long file name difficult.
Solution: Skip the characters.
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 0aeb4b8..b6aeacf 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -3068,12 +3068,12 @@
#endif
/*
- * paste a yank register into the command line.
- * used by CTRL-R command in command-line mode
+ * Paste a yank register into the command line.
+ * Used by CTRL-R command in command-line mode.
* insert_reg() can't be used here, because special characters from the
* register contents will be interpreted as commands.
*
- * return FAIL for failure, OK otherwise
+ * Return FAIL for failure, OK otherwise.
*/
static int
cmdline_paste(regname, literally, remcr)
diff --git a/src/ops.c b/src/ops.c
index d099580..c86d8de 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1577,7 +1577,7 @@
cmdline_paste_reg(regname, literally, remcr)
int regname;
int literally; /* Insert text literally instead of "as typed" */
- int remcr; /* don't add trailing CR */
+ int remcr; /* don't add CR characters */
{
long i;
@@ -1590,12 +1590,8 @@
cmdline_paste_str(y_current->y_array[i], literally);
/* Insert ^M between lines and after last line if type is MLINE.
- * Don't do this when "remcr" is TRUE and the next line is empty. */
- if (y_current->y_type == MLINE
- || (i < y_current->y_size - 1
- && !(remcr
- && i == y_current->y_size - 2
- && *y_current->y_array[i + 1] == NUL)))
+ * Don't do this when "remcr" is TRUE. */
+ if ((y_current->y_type == MLINE || i < y_current->y_size - 1) && !remcr)
cmdline_paste_str((char_u *)"\r", literally);
/* Check for CTRL-C, in case someone tries to paste a few thousand
diff --git a/src/version.c b/src/version.c
index 8a4edda..5c23005 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 973,
+/**/
972,
/**/
971,