diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-11-04 04:20:33 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-11-04 04:20:33 +0100 |
commit | f332a656c3aa26ee95849341198eb730a150445d (patch) | |
tree | 06cbcb198b8877843a29e75c9d655397301b8c33 /src/edit.c | |
parent | 69c3500f9630db9b194cb82167d0fccef9efb9a1 (diff) |
updated for version 7.4.067v7.4.067
Problem: After inserting comment leader, CTRL-\ CTRL-O does move the
cursor. (Wiktor Ruben)
Solution: Avoid moving the cursor. (Christian Brabandt)
Diffstat (limited to 'src/edit.c')
-rw-r--r-- | src/edit.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/edit.c b/src/edit.c index d2f058a985..02d822524d 100644 --- a/src/edit.c +++ b/src/edit.c @@ -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(); } |