Mercurial > vim
changeset 27821:c3b34e4bbe34 v8.2.4436
patch 8.2.4436: crash with weird 'vartabstop' value
Commit: https://github.com/vim/vim/commit/4e889f98e95ac05d7c8bd3ee933ab4d47820fdfa
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Feb 21 19:36:12 2022 +0000
patch 8.2.4436: crash with weird 'vartabstop' value
Problem: Crash with weird 'vartabstop' value.
Solution: Check for running into the end of the line.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 21 Feb 2022 20:45:03 +0100 |
parents | ba1d4ad637c0 |
children | ffe0cabad4f5 |
files | src/indent.c src/testdir/test_vartabs.vim src/version.c |
diffstat | 3 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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;
--- 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