# HG changeset patch # User Christian Brabandt # Date 1452629705 -3600 # Node ID e008ca0e2af28a868538878c5f1c0dbe8e7a0f7e # Parent 44b65a9cc81f503784313cb99a7b203cf5fda6c6 commit https://github.com/vim/vim/commit/7ae4fbca552c972eb3645ece02a2807e517610d7 Author: Bram Moolenaar Date: Tue Jan 12 21:00:40 2016 +0100 patch 7.4.1088 Problem: Coverity warns for uninitialized variables. Only one is an actual problem. Solution: Move the conditions. Don't use endpos if handling an error. diff --git a/src/ops.c b/src/ops.c --- a/src/ops.c +++ b/src/ops.c @@ -5371,9 +5371,9 @@ op_addsub(oap, Prenum1, g_cmd) } else { - int one_change; - int length; - pos_T startpos; + int one_change; + int length; + pos_T startpos; if (u_save((linenr_T)(oap->start.lnum - 1), (linenr_T)(oap->end.lnum + 1)) == FAIL) @@ -5388,32 +5388,29 @@ op_addsub(oap, Prenum1, g_cmd) pos.col = bd.textcol; length = bd.textlen; } - else + else if (oap->motion_type == MLINE) { - if (oap->motion_type == MLINE) - { - curwin->w_cursor.col = 0; - pos.col = 0; - length = (colnr_T)STRLEN(ml_get(pos.lnum)); - } - else if (oap->motion_type == MCHAR) + curwin->w_cursor.col = 0; + pos.col = 0; + length = (colnr_T)STRLEN(ml_get(pos.lnum)); + } + else /* oap->motion_type == MCHAR */ + { + if (!oap->inclusive) + dec(&(oap->end)); + length = (colnr_T)STRLEN(ml_get(pos.lnum)); + pos.col = 0; + if (pos.lnum == oap->start.lnum) { - if (!oap->inclusive) - dec(&(oap->end)); - length = (colnr_T)STRLEN(ml_get(pos.lnum)); - pos.col = 0; - if (pos.lnum == oap->start.lnum) - { - pos.col += oap->start.col; - length -= oap->start.col; - } - if (pos.lnum == oap->end.lnum) - { - length = (int)STRLEN(ml_get(oap->end.lnum)); - if (oap->end.col >= length) - oap->end.col = length - 1; - length = oap->end.col - pos.col + 1; - } + pos.col += oap->start.col; + length -= oap->start.col; + } + if (pos.lnum == oap->end.lnum) + { + length = (int)STRLEN(ml_get(oap->end.lnum)); + if (oap->end.col >= length) + oap->end.col = length - 1; + length = oap->end.col - pos.col + 1; } } one_change = do_addsub(oap->op_type, &pos, length, amount); @@ -5493,7 +5490,7 @@ do_addsub(op_type, pos, length, Prenum1) int was_positive = TRUE; int visual = VIsual_active; int did_change = FALSE; - pos_T t = curwin->w_cursor; + pos_T save_cursor = curwin->w_cursor; int maxlen = 0; pos_T startpos; pos_T endpos; @@ -5819,9 +5816,6 @@ do_addsub(op_type, pos, length, Prenum1) --curwin->w_cursor.col; } -theend: - if (visual) - curwin->w_cursor = t; if (did_change) { /* set the '[ and '] marks */ @@ -5831,6 +5825,10 @@ theend: --curbuf->b_op_end.col; } +theend: + if (visual) + curwin->w_cursor = save_cursor; + return did_change; } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1088, +/**/ 1087, /**/ 1086,