# HG changeset patch # User Bram Moolenaar # Date 1316619233 -7200 # Node ID d68f20a86a3ec75d927955be5d31983b6c37eb1d # Parent f33e01c96cc1e75ab28045df79620125fb268475 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 --- a/src/ops.c +++ b/src/ops.c @@ -1922,7 +1922,9 @@ op_delete(oap) 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 deletes the last line. */ @@ -3331,8 +3333,8 @@ do_put(regname, dir, count, flags) 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 @@ do_put(regname, dir, count, flags) 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 --- a/src/version.c +++ b/src/version.c @@ -710,6 +710,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 318, +/**/ 317, /**/ 316,