diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-11-11 20:52:40 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-11-11 20:52:40 +0100 |
commit | 6f6244855fbce5aaa718cd5001a29aac3c5c15d6 (patch) | |
tree | 3085b60577b588458df611930840afae9ae5e7b1 | |
parent | bbf9f344afd08954163191ed678352fb554fc254 (diff) | |
download | vim-git-6f6244855fbce5aaa718cd5001a29aac3c5c15d6.tar.gz |
patch 8.2.1976: cannot backspace in prompt buffer after using cursor-leftv8.2.1976
Problem: Cannot backspace in prompt buffer after using cursor-left. (Maxim
Kim)
Solution: Ignore "arrow_used" in a prompt buffer. (closes #7281)
-rw-r--r-- | src/edit.c | 7 | ||||
-rw-r--r-- | src/testdir/test_prompt_buffer.vim | 8 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 2 deletions
diff --git a/src/edit.c b/src/edit.c index 73e833752..934f6c198 100644 --- a/src/edit.c +++ b/src/edit.c @@ -3946,8 +3946,11 @@ ins_bs( #endif ((curwin->w_cursor.lnum == 1 && curwin->w_cursor.col == 0) || (!can_bs(BS_START) - && (arrow_used - || (curwin->w_cursor.lnum == Insstart_orig.lnum + && ((arrow_used +#ifdef FEAT_JOB_CHANNEL + && !bt_prompt(curbuf) +#endif + ) || (curwin->w_cursor.lnum == Insstart_orig.lnum && curwin->w_cursor.col <= Insstart_orig.col))) || (!can_bs(BS_INDENT) && !arrow_used && ai_col > 0 && curwin->w_cursor.col <= ai_col) diff --git a/src/testdir/test_prompt_buffer.vim b/src/testdir/test_prompt_buffer.vim index 8c266ebe6..00b97f8c8 100644 --- a/src/testdir/test_prompt_buffer.vim +++ b/src/testdir/test_prompt_buffer.vim @@ -122,6 +122,14 @@ func Test_prompt_garbage_collect() bwipe! endfunc +func Test_prompt_backspace() + new + set buftype=prompt + call feedkeys("A123456\<Left>\<BS>\<Esc>", 'xt') + call assert_equal('% 12346', getline(1)) + bwipe! +endfunc + " Test for editing the prompt buffer func Test_prompt_buffer_edit() new diff --git a/src/version.c b/src/version.c index 872c25a9b..28f95cfbb 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1976, +/**/ 1975, /**/ 1974, |