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
index d285893..52794bd 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -5371,9 +5371,9 @@
}
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 @@
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 /* 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)
{
- curwin->w_cursor.col = 0;
- pos.col = 0;
- length = (colnr_T)STRLEN(ml_get(pos.lnum));
+ pos.col += oap->start.col;
+ length -= oap->start.col;
}
- else if (oap->motion_type == MCHAR)
+ if (pos.lnum == oap->end.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;
- }
+ 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 @@
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 @@
--curwin->w_cursor.col;
}
-theend:
- if (visual)
- curwin->w_cursor = t;
if (did_change)
{
/* set the '[ and '] marks */
@@ -5831,6 +5825,10 @@
--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
index db72d05..dfcd635 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1088,
+/**/
1087,
/**/
1086,