diff options
author | VVKot <volodymyr.kot.ua@gmail.com> | 2021-02-13 20:02:48 +0000 |
---|---|---|
committer | VVKot <volodymyr.kot.ua@gmail.com> | 2021-03-28 08:38:21 +0100 |
commit | 7fc58ec99a7546851d2a87b6548fd36d5d9c5abc (patch) | |
tree | e295de4e03277edc4b982a9bb420b7fa6c6b4a64 /src/nvim/edit.c | |
parent | facb1d897e67f3ed71de658854d34cf48f4a3b98 (diff) | |
download | rneovim-7fc58ec99a7546851d2a87b6548fd36d5d9c5abc.tar.gz rneovim-7fc58ec99a7546851d2a87b6548fd36d5d9c5abc.tar.bz2 rneovim-7fc58ec99a7546851d2a87b6548fd36d5d9c5abc.zip |
vim-patch:8.1.0542: shiftwidth() does not take 'vartabstop' into account
Problem: shiftwidth() does not take 'vartabstop' into account.
Solution: Use the cursor position or a position explicitly passed.
Also make >> and << work better with 'vartabstop'. (Christian
Brabandt)
https://github.com/vim/vim/commit/f951416a8396a54bbbe21de1a8b16716428549f2
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r-- | src/nvim/edit.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 90b5cfd8aa..20f31a478d 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -9156,10 +9156,16 @@ static void ins_try_si(int c) * Get the value that w_virtcol would have when 'list' is off. * Unless 'cpo' contains the 'L' flag. */ -static colnr_T get_nolist_virtcol(void) +colnr_T get_nolist_virtcol(void) { - if (curwin->w_p_list && vim_strchr(p_cpo, CPO_LISTWM) == NULL) + // check validity of cursor in current buffer + if (curwin->w_buffer == NULL || curwin->w_buffer->b_ml.ml_mfp == NULL + || curwin->w_cursor.lnum > curwin->w_buffer->b_ml.ml_line_count) { + return 0; + } + if (curwin->w_p_list && vim_strchr(p_cpo, CPO_LISTWM) == NULL) { return getvcol_nolist(&curwin->w_cursor); + } validate_virtcol(); return curwin->w_virtcol; } |