]> granicus.if.org Git - vim/commitdiff
patch 7.4.2360 v7.4.2360
authorBram Moolenaar <Bram@vim.org>
Sat, 10 Sep 2016 13:52:55 +0000 (15:52 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 10 Sep 2016 13:52:55 +0000 (15:52 +0200)
Problem:    Invalid memory access when formatting. (Dominique Pelle)
Solution:   Make sure cursor line and column are associated.

src/misc1.c
src/version.c

index 99f963ce0912c8434811b289a3d08e6adaf6d0aa..79014cf2940e4461433a29ff054ca49b2f45387c 100644 (file)
@@ -6097,7 +6097,7 @@ cin_isterminated(
  * When a line ends in a comma we continue looking in the next line.
  * "sp" points to a string with the line.  When looking at other lines it must
  * be restored to the line.  When it's NULL fetch lines here.
- * "lnum" is where we start looking.
+ * "first_lnum" is where we start looking.
  * "min_lnum" is the line before which we will not be looking.
  */
     static int
@@ -6108,6 +6108,7 @@ cin_isfuncdecl(
 {
     char_u     *s;
     linenr_T   lnum = first_lnum;
+    linenr_T   save_lnum = curwin->w_cursor.lnum;
     int                retval = FALSE;
     pos_T      *trypos;
     int                just_started = TRUE;
@@ -6117,15 +6118,20 @@ cin_isfuncdecl(
     else
        s = *sp;
 
+    curwin->w_cursor.lnum = lnum;
     if (find_last_paren(s, '(', ')')
        && (trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL)
     {
        lnum = trypos->lnum;
        if (lnum < min_lnum)
+       {
+           curwin->w_cursor.lnum = save_lnum;
            return FALSE;
+       }
 
        s = ml_get(lnum);
     }
+    curwin->w_cursor.lnum = save_lnum;
 
     /* Ignore line starting with #. */
     if (cin_ispreproc(s))
@@ -6681,7 +6687,7 @@ find_start_brace(void)        /* XXX */
     static pos_T *
 find_match_paren(int ind_maxparen)     /* XXX */
 {
- return find_match_char('(', ind_maxparen);
   return find_match_char('(', ind_maxparen);
 }
 
     static pos_T *
index 65757ab9dec055ce875b11f283fc29c401a9acdc..a71647b908ac9c16ca60ad76dfaa546d6d9949b0 100644 (file)
@@ -763,6 +763,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2360,
 /**/
     2359,
 /**/