diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/edit.c | 1 | ||||
-rw-r--r-- | src/keymap.h | 2 | ||||
-rw-r--r-- | src/term.c | 1 | ||||
-rw-r--r-- | src/testdir/shared.vim | 6 | ||||
-rw-r--r-- | src/testdir/test_edit.vim | 26 | ||||
-rw-r--r-- | src/version.c | 2 |
6 files changed, 37 insertions, 1 deletions
diff --git a/src/edit.c b/src/edit.c index 65b760ba0..40717826b 100644 --- a/src/edit.c +++ b/src/edit.c @@ -963,6 +963,7 @@ doESCkey: break; case K_BS: // delete character before the cursor + case K_S_BS: case Ctrl_H: did_backspace = ins_bs(c, BACKSPACE_CHAR, &inserted_space); auto_format(FALSE, TRUE); diff --git a/src/keymap.h b/src/keymap.h index 85bf7d0b5..e8832d62f 100644 --- a/src/keymap.h +++ b/src/keymap.h @@ -276,6 +276,7 @@ enum key_extra , KE_CANCEL = 102 // return from vgetc() , KE_COMMAND = 103 // <Cmd> special key , KE_SCRIPT_COMMAND = 104 // <ScriptCmd> special key + , KE_S_BS = 105 // shift + <BS> }; /* @@ -299,6 +300,7 @@ enum key_extra #define K_C_END TERMCAP2KEY(KS_EXTRA, KE_C_END) #define K_TAB TERMCAP2KEY(KS_EXTRA, KE_TAB) #define K_S_TAB TERMCAP2KEY('k', 'B') +#define K_S_BS TERMCAP2KEY(KS_EXTRA, KE_S_BS) // extra set of function keys F1-F4, for vt100 compatible xterm #define K_XF1 TERMCAP2KEY(KS_EXTRA, KE_XF1) diff --git a/src/term.c b/src/term.c index bf5943d53..827772f50 100644 --- a/src/term.c +++ b/src/term.c @@ -688,6 +688,7 @@ static struct builtin_term builtin_termcaps[] = {K_K8, "\316\372"}, {K_K9, "\316\376"}, {K_BS, "\316x"}, + {K_S_BS, "\316y"}, # endif # if defined(VMS) || defined(ALL_BUILTIN_TCAPS) diff --git a/src/testdir/shared.vim b/src/testdir/shared.vim index 8e3dfc9c3..e442a59ec 100644 --- a/src/testdir/shared.vim +++ b/src/testdir/shared.vim @@ -248,7 +248,11 @@ let g:valgrind_cnt = 1 func GetVimCommand(...) if !filereadable('vimcmd') echo 'Cannot read the "vimcmd" file, falling back to ../vim.' - let lines = ['../vim'] + if !has("win32") + let lines = ['../vim'] + else + let lines = ['..\vim.exe'] + endif else let lines = readfile('vimcmd') endif diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim index 9ed899d83..dddffa389 100644 --- a/src/testdir/test_edit.vim +++ b/src/testdir/test_edit.vim @@ -2148,5 +2148,31 @@ func Test_edit_overlong_file_name() bwipe! endfunc +func Test_edit_shift_bs() + CheckMSWindows + + " FIXME: this works interactively, but the test fails + throw 'Skipped: Shift-Backspace Test not working correctly :(' + + " Need to run this in Win32 Terminal, do not use CheckRunVimInTerminal + if !has("terminal") + return + endif + + " Shift Backspace should work like Backspace in insert mode + let lines =<< trim END + call setline(1, ['abc']) + END + call writefile(lines, 'Xtest_edit_shift_bs') + + let buf = RunVimInTerminal('-S Xtest_edit_shift_bs', #{rows: 3}) + call term_sendkeys(buf, "A\<S-BS>-\<esc>") + call TermWait(buf, 50) + call assert_equal('ab-', term_getline(buf, 1)) + + " clean up + call StopVimInTerminal(buf) + call delete('Xtest_edit_shift_bs') +endfunc " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 59df1adaf..535d4eb09 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4876, +/**/ 4875, /**/ 4874, |