]> granicus.if.org Git - vim/commitdiff
patch 7.4.1088 v7.4.1088
authorBram Moolenaar <Bram@vim.org>
Tue, 12 Jan 2016 20:00:40 +0000 (21:00 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 12 Jan 2016 20:00:40 +0000 (21:00 +0100)
Problem:    Coverity warns for uninitialized variables.  Only one is an actual
            problem.
Solution:   Move the conditions.  Don't use endpos if handling an error.

src/ops.c
src/version.c

index d28589305837f45af22bfaaa2351868333667ca1..52794bdf22a7679ea6f565048389fb8310eb308c 100644 (file)
--- 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)
+           {
+               curwin->w_cursor.col = 0;
+               pos.col = 0;
+               length = (colnr_T)STRLEN(ml_get(pos.lnum));
+           }
+           else /* oap->motion_type == MCHAR */
            {
-               if (oap->motion_type == MLINE)
+               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 @@ 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;
 }
 
index db72d0596a6eb3360df4e183f3ea4a9a843350e8..dfcd635106a7936c3d25423ce932d1e511d86cbd 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1088,
 /**/
     1087,
 /**/