summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-11-11 20:52:40 +0100
committerBram Moolenaar <Bram@vim.org>2020-11-11 20:52:40 +0100
commit6f6244855fbce5aaa718cd5001a29aac3c5c15d6 (patch)
tree3085b60577b588458df611930840afae9ae5e7b1 /src
parentbbf9f344afd08954163191ed678352fb554fc254 (diff)
downloadvim-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)
Diffstat (limited to 'src')
-rw-r--r--src/edit.c7
-rw-r--r--src/testdir/test_prompt_buffer.vim8
-rw-r--r--src/version.c2
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,