diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/edit.c | 10 | ||||
-rw-r--r-- | src/nvim/misc1.c | 4 | ||||
-rw-r--r-- | src/nvim/testdir/test_mapping.vim | 16 |
3 files changed, 23 insertions, 7 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index f7ce0afd36..7a0487bb64 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -1096,7 +1096,7 @@ static int insert_handle_key(InsertState *s) cmdwin_result = CAR; return 0; } - if (ins_eol(s->c) && !p_im) { + if (!ins_eol(s->c) && !p_im) { return 0; // out of memory } auto_format(false, false); @@ -8356,14 +8356,14 @@ static bool ins_tab(void) /// Handle CR or NL in insert mode. /// -/// @return true when it can't undo. +/// @return false when it can't undo. static bool ins_eol(int c) { if (echeck_abbr(c + ABBR_OFF)) { - return false; + return true; } if (stop_arrow() == FAIL) { - return true; + return false; } undisplay_dollar(); @@ -8405,7 +8405,7 @@ static bool ins_eol(int c) // When inserting a line the cursor line must never be in a closed fold. foldOpenCursor(); - return !i; + return i; } /* diff --git a/src/nvim/misc1.c b/src/nvim/misc1.c index 7e9d68a4b4..4032210213 100644 --- a/src/nvim/misc1.c +++ b/src/nvim/misc1.c @@ -98,7 +98,7 @@ open_line ( colnr_T newcol = 0; // new cursor column int newindent = 0; // auto-indent of the new line bool trunc_line = false; // truncate current line afterwards - bool retval = false; // return value, default is false + bool retval = false; // return value int extra_len = 0; // length of p_extra string int lead_len; // length of comment leader char_u *lead_flags; // position in 'comments' for comment leader @@ -922,7 +922,7 @@ open_line ( next_line = NULL; } - retval = TRUE; /* success! */ + retval = true; // success! theend: curbuf->b_p_pi = saved_pi; xfree(saved_line); diff --git a/src/nvim/testdir/test_mapping.vim b/src/nvim/testdir/test_mapping.vim index 071b8b369b..247c01c98d 100644 --- a/src/nvim/testdir/test_mapping.vim +++ b/src/nvim/testdir/test_mapping.vim @@ -214,3 +214,19 @@ func Test_cabbr_visual_mode() call assert_equal(expected, getreg(':')) cunabbr s endfunc + +func Test_abbreviation_CR() + new + func Eatchar(pat) + let c = nr2char(getchar(0)) + return (c =~ a:pat) ? '' : c + endfunc + iabbrev <buffer><silent> ~~7 <c-r>=repeat('~', 7)<CR><c-r>=Eatchar('\s')<cr> + call feedkeys("GA~~7 \<esc>", 'xt') + call assert_equal('~~~~~~~', getline('$')) + %d + call feedkeys("GA~~7\<cr>\<esc>", 'xt') + call assert_equal(['~~~~~~~', ''], getline(1,'$')) + delfunc Eatchar + bw! +endfunc |