]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.067 v7.4.067
authorBram Moolenaar <Bram@vim.org>
Mon, 4 Nov 2013 03:20:33 +0000 (04:20 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 4 Nov 2013 03:20:33 +0000 (04:20 +0100)
Problem:    After inserting comment leader, CTRL-\ CTRL-O does move the
            cursor. (Wiktor Ruben)
Solution:   Avoid moving the cursor. (Christian Brabandt)

src/edit.c
src/version.c

index d2f058a985bee1300c5c45febd1b9433a0dc9c8d..02d822524da3f8727a551b4d62e59f787d6dc711 100644 (file)
@@ -199,7 +199,7 @@ static void check_spell_redraw __ARGS((void));
 static void spell_back_to_badword __ARGS((void));
 static int  spell_bad_len = 0; /* length of located bad word */
 #endif
-static void stop_insert __ARGS((pos_T *end_insert_pos, int esc));
+static void stop_insert __ARGS((pos_T *end_insert_pos, int esc, int nomove));
 static int  echeck_abbr __ARGS((int));
 static int  replace_pop __ARGS((void));
 static void replace_join __ARGS((int off));
@@ -6698,7 +6698,7 @@ start_arrow(end_insert_pos)
     if (!arrow_used)       /* something has been inserted */
     {
        AppendToRedobuff(ESC_STR);
-       stop_insert(end_insert_pos, FALSE);
+       stop_insert(end_insert_pos, FALSE, FALSE);
        arrow_used = TRUE;      /* this means we stopped the current insert */
     }
 #ifdef FEAT_SPELL
@@ -6787,9 +6787,10 @@ stop_arrow()
  * to another window/buffer.
  */
     static void
-stop_insert(end_insert_pos, esc)
+stop_insert(end_insert_pos, esc, nomove)
     pos_T      *end_insert_pos;
     int                esc;                    /* called by ins_esc() */
+    int                nomove;                 /* <c-\><c-o>, don't move cursor */
 {
     int                cc;
     char_u     *ptr;
@@ -6860,7 +6861,7 @@ stop_insert(end_insert_pos, esc)
         * Do this when ESC was used or moving the cursor up/down.
         * Check for the old position still being valid, just in case the text
         * got changed unexpectedly. */
-       if (did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL
+       if (!nomove && did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL
                        && curwin->w_cursor.lnum != end_insert_pos->lnum))
                && end_insert_pos->lnum <= curbuf->b_ml.ml_line_count)
        {
@@ -8377,7 +8378,7 @@ ins_esc(count, cmdchar, nomove)
            disabled_redraw = TRUE;
            return FALSE;       /* repeat the insert */
        }
-       stop_insert(&curwin->w_cursor, TRUE);
+       stop_insert(&curwin->w_cursor, TRUE, nomove);
        undisplay_dollar();
     }
 
index 615d86db590d165440785ea737dedcb3ef074ff8..93faccbdf06bff4fb2751dda6c075887ac09cdae 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    67,
 /**/
     66,
 /**/