updated for version 7.3.318
Problem: "C" on the last line deletes that line if it's blank.
Solution: Only delete the last line for a delete operation. (James Vega)
diff --git a/src/ops.c b/src/ops.c
index 4119356..656285a 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1922,7 +1922,9 @@
curwin->w_cursor.coladd = 0;
}
#endif
- if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
+ if (oap->op_type == OP_DELETE
+ && oap->inclusive
+ && oap->end.lnum == curbuf->b_ml.ml_line_count
&& n > (int)STRLEN(ml_get(oap->end.lnum)))
{
/* Special case: gH<Del> deletes the last line. */
@@ -3331,8 +3333,8 @@
if (regname == '=')
{
/* For the = register we need to split the string at NL
- * characters. */
- /* Loop twice: count the number of lines and save them. */
+ * characters.
+ * Loop twice: count the number of lines and save them. */
for (;;)
{
y_size = 0;
@@ -3348,7 +3350,7 @@
if (y_array != NULL)
*ptr = NUL;
++ptr;
- /* A trailing '\n' makes the string linewise */
+ /* A trailing '\n' makes the register linewise. */
if (*ptr == NUL)
{
y_type = MLINE;
diff --git a/src/version.c b/src/version.c
index 35ed103..a22a460 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 318,
+/**/
317,
/**/
316,