diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-02-21 19:36:12 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-02-21 19:36:12 +0000 |
commit | 4e889f98e95ac05d7c8bd3ee933ab4d47820fdfa (patch) | |
tree | 283ebbe59c424a9a0e9a061e70300fe94de49851 | |
parent | 7842761bbaa7965fa52b5e3eadf162bc7fa6cdb1 (diff) | |
download | vim-git-4e889f98e95ac05d7c8bd3ee933ab4d47820fdfa.tar.gz |
patch 8.2.4436: crash with weird 'vartabstop' valuev8.2.4436
Problem: Crash with weird 'vartabstop' value.
Solution: Check for running into the end of the line.
-rw-r--r-- | src/indent.c | 2 | ||||
-rw-r--r-- | src/testdir/test_vartabs.vim | 12 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/indent.c b/src/indent.c index 95fc74ee4..95bda2072 100644 --- a/src/indent.c +++ b/src/indent.c @@ -1338,6 +1338,8 @@ change_indent( new_cursor_col += (*mb_ptr2len)(ptr + new_cursor_col); else ++new_cursor_col; + if (ptr[new_cursor_col] == NUL) + break; vcol += lbr_chartabsize(ptr, ptr + new_cursor_col, (colnr_T)vcol); } vcol = last_vcol; diff --git a/src/testdir/test_vartabs.vim b/src/testdir/test_vartabs.vim index 156233dca..d21acfe3a 100644 --- a/src/testdir/test_vartabs.vim +++ b/src/testdir/test_vartabs.vim @@ -442,4 +442,16 @@ func Test_shiftwidth_vartabstop() setlocal shiftwidth& vartabstop& tabstop& endfunc +func Test_vartabstop_latin1() + let save_encoding = &encoding + new + set encoding=iso8859 + silent norm :se + set vartabstop=400 + norm i00 + bwipe! + let &encoding = save_encoding +endfunc + + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 9e2141194..6eae5e66f 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 */ /**/ + 4436, +/**/ 4435, /**/ 4434, |