mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.2198: crash when using :center in autocommand
Problem: Crash when using :center in autocommand. Solution: Bail out early for an empty line. (Dominique pelle, closes #5095)
This commit is contained in:
parent
34ba06b6e6
commit
396b7c78c0
@ -251,18 +251,23 @@ linelen(int *has_tab)
|
||||
int save;
|
||||
int len;
|
||||
|
||||
/* find the first non-blank character */
|
||||
// Get the line. If it's empty bail out early (could be the empty string
|
||||
// for an unloaded buffer).
|
||||
line = ml_get_curline();
|
||||
if (*line == NUL)
|
||||
return 0;
|
||||
|
||||
// find the first non-blank character
|
||||
first = skipwhite(line);
|
||||
|
||||
/* find the character after the last non-blank character */
|
||||
// find the character after the last non-blank character
|
||||
for (last = first + STRLEN(first);
|
||||
last > first && VIM_ISWHITE(last[-1]); --last)
|
||||
;
|
||||
save = *last;
|
||||
*last = NUL;
|
||||
len = linetabsize(line); /* get line length */
|
||||
if (has_tab != NULL) /* check for embedded TAB */
|
||||
len = linetabsize(line); // get line length
|
||||
if (has_tab != NULL) // check for embedded TAB
|
||||
*has_tab = (vim_strchr(first, TAB) != NULL);
|
||||
*last = save;
|
||||
|
||||
|
@ -1,4 +1,7 @@
|
||||
" Tests for the various 'formatoptions' settings
|
||||
|
||||
source check.vim
|
||||
|
||||
func Test_text_format()
|
||||
enew!
|
||||
|
||||
@ -489,3 +492,20 @@ func Test_format_list_auto()
|
||||
bwipe!
|
||||
set fo& ai& bs&
|
||||
endfunc
|
||||
|
||||
func Test_crash_github_issue_5095()
|
||||
CheckFeature autocmd
|
||||
|
||||
" This used to segfault, see https://github.com/vim/vim/issues/5095
|
||||
augroup testing
|
||||
au BufNew x center
|
||||
augroup END
|
||||
|
||||
next! x
|
||||
|
||||
bw
|
||||
augroup testing
|
||||
au!
|
||||
augroup END
|
||||
augroup! testing
|
||||
endfunc
|
||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2198,
|
||||
/**/
|
||||
2197,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user