mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07:00
Merge pull request #12804 from janlazo/vim-8.1.1725
[RDY]vim-patch:8.1.{1694,1725,1776,1804,1806,1831,2041,2198,2206},8.2.{1033,1315,1548}
This commit is contained in:
commit
2bbbb34ce7
@ -326,14 +326,19 @@ static int 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 = get_cursor_line_ptr();
|
||||
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 && ascii_iswhite(last[-1]); --last)
|
||||
;
|
||||
last > first && ascii_iswhite(last[-1]); last--) {
|
||||
}
|
||||
save = *last;
|
||||
*last = NUL;
|
||||
// Get line length.
|
||||
|
@ -176,10 +176,11 @@ char *os_ctime_r(const time_t *restrict clock, char *restrict result,
|
||||
struct tm *clock_local_ptr = os_localtime_r(clock, &clock_local);
|
||||
// MSVC returns NULL for an invalid value of seconds.
|
||||
if (clock_local_ptr == NULL) {
|
||||
snprintf(result, result_len, "%s\n", _("(Invalid)"));
|
||||
xstrlcpy(result, _("(Invalid)"), result_len);
|
||||
} else {
|
||||
strftime(result, result_len, "%a %b %d %H:%M:%S %Y\n", clock_local_ptr);
|
||||
strftime(result, result_len, _("%a %b %d %H:%M:%S %Y"), clock_local_ptr);
|
||||
}
|
||||
xstrlcat(result, "\n", result_len);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@ func! GetMline()
|
||||
|
||||
" remove '%', not used for formatting.
|
||||
let idline = substitute(idline, "'%'", '', 'g')
|
||||
let idline = substitute(idline, "%%", '', 'g')
|
||||
|
||||
" remove '%' used for plural forms.
|
||||
let idline = substitute(idline, '\\nPlural-Forms: .\+;\\n', '', '')
|
||||
|
@ -1,6 +1,46 @@
|
||||
source shared.vim
|
||||
source term_util.vim
|
||||
|
||||
" Command to check for the presence of a feature.
|
||||
command -nargs=1 CheckFeature call CheckFeature(<f-args>)
|
||||
func CheckFeature(name)
|
||||
if !has(a:name)
|
||||
throw 'Skipped: ' .. a:name .. ' feature missing'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check for the presence of a working option.
|
||||
command -nargs=1 CheckOption call CheckOption(<f-args>)
|
||||
func CheckOption(name)
|
||||
if !exists('+' .. a:name)
|
||||
throw 'Skipped: ' .. a:name .. ' option not supported'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check for the presence of a function.
|
||||
command -nargs=1 CheckFunction call CheckFunction(<f-args>)
|
||||
func CheckFunction(name)
|
||||
if !exists('*' .. a:name)
|
||||
throw 'Skipped: ' .. a:name .. ' function missing'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check for running on MS-Windows
|
||||
command CheckMSWindows call CheckMSWindows()
|
||||
func CheckMSWindows()
|
||||
if !has('win32')
|
||||
throw 'Skipped: only works on MS-Windows'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check for running on Unix
|
||||
command CheckUnix call CheckUnix()
|
||||
func CheckUnix()
|
||||
if !has('unix')
|
||||
throw 'Skipped: only works on Unix'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check that making screendumps is supported.
|
||||
" Caller must source screendump.vim
|
||||
command CheckScreendump call CheckScreendump()
|
||||
@ -9,3 +49,19 @@ func CheckScreendump()
|
||||
throw 'Skipped: cannot make screendumps'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check that we can Run Vim in a terminal window
|
||||
command CheckRunVimInTerminal call CheckRunVimInTerminal()
|
||||
func CheckRunVimInTerminal()
|
||||
if !CanRunVimInTerminal()
|
||||
throw 'Skipped: cannot run Vim in a terminal window'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check that we can run the GUI
|
||||
command CheckCanRunGui call CheckCanRunGui()
|
||||
func CheckCanRunGui()
|
||||
if !has('gui') || ($DISPLAY == "" && !has('gui_running'))
|
||||
throw 'Skipped: cannot start the GUI'
|
||||
endif
|
||||
endfunc
|
||||
|
@ -101,6 +101,8 @@ let &runtimepath .= ','.expand($BUILD_DIR).'/runtime/'
|
||||
" Always use forward slashes.
|
||||
set shellslash
|
||||
|
||||
let s:t_bold = &t_md
|
||||
let s:t_normal = &t_me
|
||||
if has('win32')
|
||||
" avoid prompt that is long or contains a line break
|
||||
let $PROMPT = '$P$G'
|
||||
@ -209,7 +211,15 @@ func RunTheTest(test)
|
||||
|
||||
let message = 'Executed ' . a:test
|
||||
if has('reltime')
|
||||
let message ..= ' in ' .. reltimestr(reltime(func_start)) .. ' seconds'
|
||||
let message ..= repeat(' ', 50 - len(message))
|
||||
let time = reltime(func_start)
|
||||
if has('float') && reltimefloat(time) > 0.1
|
||||
let message = s:t_bold .. message
|
||||
endif
|
||||
let message ..= ' in ' .. reltimestr(time) .. ' seconds'
|
||||
if has('float') && reltimefloat(time) > 0.1
|
||||
let message ..= s:t_normal
|
||||
endif
|
||||
endif
|
||||
call add(s:messages, message)
|
||||
let s:done += 1
|
||||
@ -277,7 +287,9 @@ func FinishTesting()
|
||||
let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test')
|
||||
endif
|
||||
if s:done > 0 && has('reltime')
|
||||
let message = s:t_bold .. message .. repeat(' ', 40 - len(message))
|
||||
let message ..= ' in ' .. reltimestr(reltime(s:start_time)) .. ' seconds'
|
||||
let message ..= s:t_normal
|
||||
endif
|
||||
echo message
|
||||
call add(s:messages, message)
|
||||
|
@ -271,7 +271,7 @@ func GetVimCommand(...)
|
||||
let cmd = cmd . ' -u ' . name
|
||||
endif
|
||||
let cmd .= ' --headless -i NONE'
|
||||
let cmd = substitute(cmd, 'VIMRUNTIME=.*VIMRUNTIME;', '', '')
|
||||
let cmd = substitute(cmd, 'VIMRUNTIME=\S\+', '', '')
|
||||
|
||||
" If using valgrind, make sure every run uses a different log file.
|
||||
if cmd =~ 'valgrind.*--log-file='
|
||||
@ -329,7 +329,3 @@ func RunVimPiped(before, after, arguments, pipecmd)
|
||||
endif
|
||||
return 1
|
||||
endfunc
|
||||
|
||||
func CanRunGui()
|
||||
return has('gui') && ($DISPLAY != "" || has('gui_running'))
|
||||
endfunc
|
||||
|
@ -724,10 +724,140 @@ func Test_diff_lastline()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_diff_screen()
|
||||
CheckScreendump
|
||||
CheckFeature menu
|
||||
|
||||
" clean up already existing swap files, just in case
|
||||
call delete('.Xfile1.swp')
|
||||
call delete('.Xfile2.swp')
|
||||
|
||||
" Test 1: Add a line in beginning of file 2
|
||||
call WriteDiffFiles(0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
let buf = RunVimInTerminal('-d Xfile1 Xfile2', {})
|
||||
" Set autoread mode, so that Vim won't complain once we re-write the test
|
||||
" files
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
|
||||
call VerifyBoth(buf, 'Test_diff_01', '')
|
||||
|
||||
" Test 2: Add a line in beginning of file 1
|
||||
call WriteDiffFiles(buf, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
call VerifyBoth(buf, 'Test_diff_02', '')
|
||||
|
||||
" Test 3: Add a line at the end of file 2
|
||||
call WriteDiffFiles(buf, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
|
||||
call VerifyBoth(buf, 'Test_diff_03', '')
|
||||
|
||||
" Test 4: Add a line at the end of file 1
|
||||
call WriteDiffFiles(buf, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
call VerifyBoth(buf, 'Test_diff_04', '')
|
||||
|
||||
" Test 5: Add a line in the middle of file 2, remove on at the end of file 1
|
||||
call WriteDiffFiles(buf, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], [1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10])
|
||||
call VerifyBoth(buf, 'Test_diff_05', '')
|
||||
|
||||
" Test 6: Add a line in the middle of file 1, remove on at the end of file 2
|
||||
call WriteDiffFiles(buf, [1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
|
||||
call VerifyBoth(buf, 'Test_diff_06', '')
|
||||
|
||||
" Variants on test 6 with different context settings
|
||||
call term_sendkeys(buf, ":set diffopt+=context:2\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_06.2', {})
|
||||
call term_sendkeys(buf, ":set diffopt-=context:2\<cr>")
|
||||
call term_sendkeys(buf, ":set diffopt+=context:1\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_06.1', {})
|
||||
call term_sendkeys(buf, ":set diffopt-=context:1\<cr>")
|
||||
call term_sendkeys(buf, ":set diffopt+=context:0\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_06.0', {})
|
||||
call term_sendkeys(buf, ":set diffopt-=context:0\<cr>")
|
||||
|
||||
" Test 7 - 9: Test normal/patience/histogram diff algorithm
|
||||
call WriteDiffFiles(buf, ['#include <stdio.h>', '', '// Frobs foo heartily', 'int frobnitz(int foo)', '{',
|
||||
\ ' int i;', ' for(i = 0; i < 10; i++)', ' {', ' printf("Your answer is: ");',
|
||||
\ ' printf("%d\n", foo);', ' }', '}', '', 'int fact(int n)', '{', ' if(n > 1)', ' {',
|
||||
\ ' return fact(n-1) * n;', ' }', ' return 1;', '}', '', 'int main(int argc, char **argv)',
|
||||
\ '{', ' frobnitz(fact(10));', '}'],
|
||||
\ ['#include <stdio.h>', '', 'int fib(int n)', '{', ' if(n > 2)', ' {',
|
||||
\ ' return fib(n-1) + fib(n-2);', ' }', ' return 1;', '}', '', '// Frobs foo heartily',
|
||||
\ 'int frobnitz(int foo)', '{', ' int i;', ' for(i = 0; i < 10; i++)', ' {',
|
||||
\ ' printf("%d\n", foo);', ' }', '}', '',
|
||||
\ 'int main(int argc, char **argv)', '{', ' frobnitz(fib(10));', '}'])
|
||||
call term_sendkeys(buf, ":diffupdate!\<cr>")
|
||||
call term_sendkeys(buf, ":set diffopt+=internal\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_07', {})
|
||||
|
||||
call term_sendkeys(buf, ":set diffopt+=algorithm:patience\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_08', {})
|
||||
|
||||
call term_sendkeys(buf, ":set diffopt+=algorithm:histogram\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_09', {})
|
||||
|
||||
" Test 10-11: normal/indent-heuristic
|
||||
call term_sendkeys(buf, ":set diffopt&vim\<cr>")
|
||||
call WriteDiffFiles(buf, ['', ' def finalize(values)', '', ' values.each do |v|', ' v.finalize', ' end'],
|
||||
\ ['', ' def finalize(values)', '', ' values.each do |v|', ' v.prepare', ' end', '',
|
||||
\ ' values.each do |v|', ' v.finalize', ' end'])
|
||||
call term_sendkeys(buf, ":diffupdate!\<cr>")
|
||||
call term_sendkeys(buf, ":set diffopt+=internal\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_10', {})
|
||||
|
||||
" Leave trailing : at commandline!
|
||||
call term_sendkeys(buf, ":set diffopt+=indent-heuristic\<cr>:\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_11', {}, 'one')
|
||||
" shouldn't matter, if indent-algorithm comes before or after the algorithm
|
||||
call term_sendkeys(buf, ":set diffopt&\<cr>")
|
||||
call term_sendkeys(buf, ":set diffopt+=indent-heuristic,algorithm:patience\<cr>:\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_11', {}, 'two')
|
||||
call term_sendkeys(buf, ":set diffopt&\<cr>")
|
||||
call term_sendkeys(buf, ":set diffopt+=algorithm:patience,indent-heuristic\<cr>:\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_11', {}, 'three')
|
||||
|
||||
" Test 12: diff the same file
|
||||
call WriteDiffFiles(buf, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
call VerifyBoth(buf, 'Test_diff_12', '')
|
||||
|
||||
" Test 13: diff an empty file
|
||||
call WriteDiffFiles(buf, [], [])
|
||||
call VerifyBoth(buf, 'Test_diff_13', '')
|
||||
|
||||
" Test 14: test diffopt+=icase
|
||||
call WriteDiffFiles(buf, ['a', 'b', 'cd'], ['A', 'b', 'cDe'])
|
||||
call VerifyBoth(buf, 'Test_diff_14', " diffopt+=filler diffopt+=icase")
|
||||
|
||||
" Test 15-16: test diffopt+=iwhite
|
||||
call WriteDiffFiles(buf, ['int main()', '{', ' printf("Hello, World!");', ' return 0;', '}'],
|
||||
\ ['int main()', '{', ' if (0)', ' {', ' printf("Hello, World!");', ' return 0;', ' }', '}'])
|
||||
call term_sendkeys(buf, ":diffupdate!\<cr>")
|
||||
call term_sendkeys(buf, ":set diffopt&vim diffopt+=filler diffopt+=iwhite\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_15', {})
|
||||
call term_sendkeys(buf, ":set diffopt+=internal\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_16', {})
|
||||
|
||||
" Test 17: test diffopt+=iblank
|
||||
call WriteDiffFiles(buf, ['a', ' ', 'cd', 'ef', 'xxx'], ['a', 'cd', '', 'ef', 'yyy'])
|
||||
call VerifyInternal(buf, 'Test_diff_17', " diffopt+=iblank")
|
||||
|
||||
" Test 18: test diffopt+=iblank,iwhite / iwhiteall / iwhiteeol
|
||||
call VerifyInternal(buf, 'Test_diff_18', " diffopt+=iblank,iwhite")
|
||||
call VerifyInternal(buf, 'Test_diff_18', " diffopt+=iblank,iwhiteall")
|
||||
call VerifyInternal(buf, 'Test_diff_18', " diffopt+=iblank,iwhiteeol")
|
||||
|
||||
" Test 19: test diffopt+=iwhiteeol
|
||||
call WriteDiffFiles(buf, ['a ', 'x', 'cd', 'ef', 'xx xx', 'foo', 'bar'], ['a', 'x', 'c d', ' ef', 'xx xx', 'foo', '', 'bar'])
|
||||
call VerifyInternal(buf, 'Test_diff_19', " diffopt+=iwhiteeol")
|
||||
|
||||
" Test 19: test diffopt+=iwhiteall
|
||||
call VerifyInternal(buf, 'Test_diff_20', " diffopt+=iwhiteall")
|
||||
|
||||
" clean up
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xfile1')
|
||||
call delete('Xfile2')
|
||||
endfunc
|
||||
|
||||
func Test_diff_with_cursorline()
|
||||
if !CanRunVimInTerminal()
|
||||
throw 'Skipped: cannot run Vim in a terminal window'
|
||||
endif
|
||||
CheckScreendump
|
||||
|
||||
call writefile([
|
||||
\ 'hi CursorLine ctermbg=red ctermfg=white',
|
||||
@ -751,13 +881,45 @@ func Test_diff_with_cursorline()
|
||||
call delete('Xtest_diff_cursorline')
|
||||
endfunc
|
||||
|
||||
func Test_diff_with_syntax()
|
||||
CheckScreendump
|
||||
|
||||
let lines =<< trim END
|
||||
void doNothing() {
|
||||
int x = 0;
|
||||
char *s = "hello";
|
||||
return 5;
|
||||
}
|
||||
END
|
||||
call writefile(lines, 'Xprogram1.c')
|
||||
let lines =<< trim END
|
||||
void doSomething() {
|
||||
int x = 0;
|
||||
char *s = "there";
|
||||
return 5;
|
||||
}
|
||||
END
|
||||
call writefile(lines, 'Xprogram2.c')
|
||||
|
||||
let lines =<< trim END
|
||||
edit Xprogram1.c
|
||||
diffsplit Xprogram2.c
|
||||
END
|
||||
call writefile(lines, 'Xtest_diff_syntax')
|
||||
let buf = RunVimInTerminal('-S Xtest_diff_syntax', {})
|
||||
|
||||
call VerifyScreenDump(buf, 'Test_diff_syntax_1', {})
|
||||
|
||||
" clean up
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xtest_diff_syntax')
|
||||
call delete('Xprogram1.c')
|
||||
call delete('Xprogram2.c')
|
||||
endfunc
|
||||
|
||||
func Test_diff_of_diff()
|
||||
if !CanRunVimInTerminal()
|
||||
throw 'Skipped: cannot run Vim in a terminal window'
|
||||
endif
|
||||
if !has("rightleft")
|
||||
throw 'Skipped: rightleft not supported'
|
||||
endif
|
||||
CheckScreendump
|
||||
CheckFeature rightleft
|
||||
|
||||
call writefile([
|
||||
\ 'call setline(1, ["aa","bb","cc","@@ -3,2 +5,7 @@","dd","ee","ff"])',
|
||||
|
@ -6,11 +6,12 @@
|
||||
" endif
|
||||
|
||||
source view_util.vim
|
||||
source check.vim
|
||||
source screendump.vim
|
||||
|
||||
func Test_display_foldcolumn()
|
||||
CheckFeature folding
|
||||
|
||||
func! Test_display_foldcolumn()
|
||||
if !has("folding")
|
||||
return
|
||||
endif
|
||||
new
|
||||
vnew
|
||||
vert resize 25
|
||||
@ -41,9 +42,8 @@ func! Test_display_foldcolumn()
|
||||
endfunc
|
||||
|
||||
func! Test_display_foldtext_mbyte()
|
||||
if !has("folding")
|
||||
return
|
||||
endif
|
||||
CheckFeature folding
|
||||
|
||||
call NewWindow(10, 40)
|
||||
call append(0, range(1,20))
|
||||
exe "set foldmethod=manual foldtext=foldtext() fillchars=fold:\u2500,vert:\u2502 fdc=2"
|
||||
@ -70,6 +70,42 @@ func! Test_display_foldtext_mbyte()
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" check that win_ins_lines() and win_del_lines() work when t_cs is empty.
|
||||
func Test_scroll_without_region()
|
||||
CheckScreendump
|
||||
|
||||
let lines =<< trim END
|
||||
call setline(1, range(1, 20))
|
||||
set t_cs=
|
||||
set laststatus=2
|
||||
END
|
||||
call writefile(lines, 'Xtestscroll')
|
||||
let buf = RunVimInTerminal('-S Xtestscroll', #{rows: 10})
|
||||
|
||||
call VerifyScreenDump(buf, 'Test_scroll_no_region_1', {})
|
||||
|
||||
call term_sendkeys(buf, ":3delete\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_scroll_no_region_2', {})
|
||||
|
||||
call term_sendkeys(buf, ":4put\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_scroll_no_region_3', {})
|
||||
|
||||
call term_sendkeys(buf, ":undo\<cr>")
|
||||
call term_sendkeys(buf, ":undo\<cr>")
|
||||
call term_sendkeys(buf, ":set laststatus=0\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_scroll_no_region_4', {})
|
||||
|
||||
call term_sendkeys(buf, ":3delete\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_scroll_no_region_5', {})
|
||||
|
||||
call term_sendkeys(buf, ":4put\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_scroll_no_region_6', {})
|
||||
|
||||
" clean up
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xtestscroll')
|
||||
endfunc
|
||||
|
||||
func Test_display_listchars_precedes()
|
||||
set fillchars+=vert:\|
|
||||
call NewWindow(10, 10)
|
||||
@ -125,3 +161,26 @@ func Test_display_listchars_precedes()
|
||||
set list& listchars& wrap&
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" Check that win_lines() works correctly with the number_only parameter=TRUE
|
||||
" should break early to optimize cost of drawing, but needs to make sure
|
||||
" that the number column is correctly highlighted.
|
||||
func Test_scroll_CursorLineNr_update()
|
||||
CheckScreendump
|
||||
|
||||
let lines =<< trim END
|
||||
hi CursorLineNr ctermfg=73 ctermbg=236
|
||||
set nu rnu cursorline cursorlineopt=number
|
||||
exe ":norm! o\<esc>110ia\<esc>"
|
||||
END
|
||||
let filename = 'Xdrawscreen'
|
||||
call writefile(lines, filename)
|
||||
let buf = RunVimInTerminal('-S '.filename, #{rows: 5, cols: 50})
|
||||
call term_sendkeys(buf, "k")
|
||||
call term_wait(buf)
|
||||
call VerifyScreenDump(buf, 'Test_winline_rnu', {})
|
||||
|
||||
" clean up
|
||||
call StopVimInTerminal(buf)
|
||||
call delete(filename)
|
||||
endfunc
|
||||
|
@ -1,4 +1,7 @@
|
||||
" Tests for the various 'formatoptions' settings
|
||||
|
||||
source check.vim
|
||||
|
||||
func Test_text_format()
|
||||
enew!
|
||||
|
||||
@ -490,6 +493,23 @@ func Test_format_list_auto()
|
||||
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
|
||||
|
||||
" Test for formatting multi-byte text with 'fo=t'
|
||||
func Test_tw_2_fo_t()
|
||||
new
|
||||
|
Loading…
Reference in New Issue
Block a user