Patch 9.0.1257

6 views
Skip to first unread message

Bram Moolenaar

unread,
Jan 28, 2023, 2:19:46 PM1/28/23
to vim...@googlegroups.com

Patch 9.0.1257
Problem: Code style is not check in test scripts.
Solution: Add basic code style check for test files.
Files: src/testdir/test_codestyle.vim, src/testdir/keycode_check.vim,
src/testdir/runtest.vim, src/testdir/setup.vim,
src/testdir/summarize.vim, src/testdir/unix.vim,
src/testdir/vim9.vim, src/testdir/test_assert.vim,
src/testdir/test_autocmd.vim, src/testdir/test_blob.vim,
src/testdir/test_blockedit.vim, src/testdir/test_channel.vim,
src/testdir/test_cmd_lists.vim, src/testdir/test_diffmode.vim,
src/testdir/test_edit.vim, src/testdir/test_expand.vim,
src/testdir/test_expand_dllpath.vim,
src/testdir/test_expand_func.vim, src/testdir/test_fold.vim,
src/testdir/test_goto.vim, src/testdir/test_increment.vim,
src/testdir/test_indent.vim, src/testdir/test_ins_complete.vim,
src/testdir/test_listchars.vim,
src/testdir/test_map_functions.vim, src/testdir/test_method.vim,
src/testdir/test_mswin_event.vim, src/testdir/test_normal.vim,
src/testdir/test_popup.vim,
src/testdir/test_popupwin_textprop.vim,
src/testdir/test_quickfix.vim, src/testdir/test_regexp_latin.vim,
src/testdir/test_scroll_opt.vim, src/testdir/test_signals.vim,
src/testdir/test_signs.vim, src/testdir/test_statusline.vim,
src/testdir/test_substitute.vim, src/testdir/test_tagfunc.vim,
src/testdir/test_tagjump.vim, src/testdir/test_termcodes.vim,
src/testdir/test_textprop.vim, src/testdir/test_timers.vim,
src/testdir/test_true_false.vim, src/testdir/test_utf8.vim,
src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_class.vim,
src/testdir/test_vim9_disassemble.vim,
src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim,
src/testdir/test_vim9_import.vim, src/testdir/test_viminfo.vim,
src/testdir/test_virtualedit.vim, src/testdir/test_visual.vim,
src/testdir/test_winbuf_close.vim, src/testdir/test_xxd.vim


*** ../vim-9.0.1256/src/testdir/test_codestyle.vim 2023-01-22 21:14:32.609863616 +0000
--- src/testdir/test_codestyle.vim 2023-01-28 19:15:37.693635461 +0000
***************
*** 41,45 ****
--- 41,82 ----
bwipe!
enddef

+ def Test_test_files()
+ for fname in glob('*.vim', 0, 1)
+ exe 'edit ' .. fname
+
+ # some files intentionally have misplaced white space
+ if fname =~ 'test_cindent.vim' || fname =~ 'test_join.vim'
+ continue
+ endif
+
+ # skip files that are known to have a space before a tab
+ if fname !~ 'test_comments.vim'
+ && fname !~ 'test_listchars.vim'
+ && fname !~ 'test_visual.vim'
+ cursor(1, 1)
+ var lnum = search(fname =~ "test_regexp_latin" ? '[^á] \t' : ' \t')
+ assert_equal(0, lnum, 'testdir/' .. fname .. ': space before tab')
+ endif
+
+ # skip files that are known to have trailing white space
+ if fname !~ 'test_cmdline.vim'
+ && fname !~ 'test_let.vim'
+ && fname !~ 'test_tagjump.vim'
+ && fname !~ 'test_vim9_cmd.vim'
+ cursor(1, 1)
+ var lnum = search(
+ fname =~ 'test_vim9_assign.vim' ? '[^=]\s$'
+ : fname =~ 'test_vim9_class.vim' ? '[^)]\s$'
+ : fname =~ 'test_vim9_script.vim' ? '[^,:3]\s$'
+ : fname =~ 'test_visual.vim' ? '[^/]\s$'
+ : '[^\\]\s$')
+ assert_equal(0, lnum, 'testdir/' .. fname .. ': trailing white space')
+ endif
+ endfor
+
+ bwipe!
+ enddef
+

" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-9.0.1256/src/testdir/keycode_check.vim 2022-11-27 11:31:20.645181563 +0000
--- src/testdir/keycode_check.vim 2023-01-26 21:10:46.884221149 +0000
***************
*** 4,11 ****
#
# Usage: vim -u NONE -S keycode_check.vim
#
! # Author: Bram Moolenaar
! # Last Update: 2022 Nov 15
#
# The codes are stored in the file "keycode_check.json", so that you can
# compare the results of various terminals.
--- 4,11 ----
#
# Usage: vim -u NONE -S keycode_check.vim
#
! # Author: Bram Moolenaar
! # Last Update: 2022 Nov 15
#
# The codes are stored in the file "keycode_check.json", so that you can
# compare the results of various terminals.
***************
*** 449,455 ****
# The main loop
while true
var action = inputlist(['Select operation:',
! '1. List results',
'2. Add results for a new terminal',
'3. Replace results',
'4. Clear results',
--- 449,455 ----
# The main loop
while true
var action = inputlist(['Select operation:',
! '1. List results',
'2. Add results for a new terminal',
'3. Replace results',
'4. Clear results',
*** ../vim-9.0.1256/src/testdir/runtest.vim 2022-12-08 16:30:13.147504028 +0000
--- src/testdir/runtest.vim 2023-01-25 14:37:50.859944252 +0000
***************
*** 59,65 ****
endif

" Check that the screen size is at least 24 x 80 characters.
! if &lines < 24 || &columns < 80
let error = 'Screen size too small! Tests require at least 24 lines with 80 characters, got ' .. &lines .. ' lines with ' .. &columns .. ' characters'
echoerr error
split test.log
--- 59,65 ----
endif

" Check that the screen size is at least 24 x 80 characters.
! if &lines < 24 || &columns < 80
let error = 'Screen size too small! Tests require at least 24 lines with 80 characters, got ' .. &lines .. ' lines with ' .. &columns .. ' characters'
echoerr error
split test.log
*** ../vim-9.0.1256/src/testdir/setup.vim 2022-11-26 19:16:44.186717893 +0000
--- src/testdir/setup.vim 2023-01-26 21:03:06.960569487 +0000
***************
*** 20,26 ****
let &packpath = &rtp
endif

! " Only when the +eval feature is present.
if 1
" Make sure the .Xauthority file can be found after changing $HOME.
if $XAUTHORITY == ''
--- 20,26 ----
let &packpath = &rtp
endif

! " Only when the +eval feature is present.
if 1
" Make sure the .Xauthority file can be found after changing $HOME.
if $XAUTHORITY == ''
*** ../vim-9.0.1256/src/testdir/summarize.vim 2020-08-13 18:36:41.000000000 +0100
--- src/testdir/summarize.vim 2023-01-26 21:03:35.540551987 +0000
***************
*** 33,39 ****
silent %s/^SKIPPED \zs.*/\=Count(submatch(0), 'skipped')/egn
silent %s/^\(\d\+\)\s\+FAILED:/\=Count(submatch(1), 'failed')/egn

! call extend(output, ["Skipped:"])
call extend(output, skipped_output)

call extend(output, [
--- 33,39 ----
silent %s/^SKIPPED \zs.*/\=Count(submatch(0), 'skipped')/egn
silent %s/^\(\d\+\)\s\+FAILED:/\=Count(submatch(1), 'failed')/egn

! call extend(output, ["Skipped:"])
call extend(output, skipped_output)

call extend(output, [
*** ../vim-9.0.1256/src/testdir/unix.vim 2019-07-31 19:33:06.000000000 +0100
--- src/testdir/unix.vim 2023-01-28 19:16:32.601664167 +0000
***************
*** 2,8 ****
" Always use "sh", don't use the value of "$SHELL".
set shell=sh

! " Only when the +eval feature is present.
if 1
" While some tests overwrite $HOME to prevent them from polluting user files,
" we need to remember the original value so that we can tell external systems
--- 2,8 ----
" Always use "sh", don't use the value of "$SHELL".
set shell=sh

! " Only when the +eval feature is present.
if 1
" While some tests overwrite $HOME to prevent them from polluting user files,
" we need to remember the original value so that we can tell external systems
*** ../vim-9.0.1256/src/testdir/vim9.vim 2022-02-10 21:50:29.000000000 +0000
--- src/testdir/vim9.vim 2023-01-26 21:31:51.922582763 +0000
***************
*** 195,208 ****
# CheckLegacyAndVim9Success()
export def CheckTransLegacySuccess(lines: list<string>)
var legacylines = lines->mapnew((_, v) =>
! v->substitute('\<VAR\>', 'let', 'g')
! ->substitute('\<LET\>', 'let', 'g')
! ->substitute('\<LSTART\>', '{', 'g')
! ->substitute('\<LMIDDLE\>', '->', 'g')
->substitute('\<LEND\>', '}', 'g')
->substitute('\<TRUE\>', '1', 'g')
->substitute('\<FALSE\>', '0', 'g')
! ->substitute('#"', ' "', 'g'))
CheckLegacySuccess(legacylines)
enddef

--- 195,208 ----
# CheckLegacyAndVim9Success()
export def CheckTransLegacySuccess(lines: list<string>)
var legacylines = lines->mapnew((_, v) =>
! v->substitute('\<VAR\>', 'let', 'g')
! ->substitute('\<LET\>', 'let', 'g')
! ->substitute('\<LSTART\>', '{', 'g')
! ->substitute('\<LMIDDLE\>', '->', 'g')
->substitute('\<LEND\>', '}', 'g')
->substitute('\<TRUE\>', '1', 'g')
->substitute('\<FALSE\>', '0', 'g')
! ->substitute('#"', ' "', 'g'))
CheckLegacySuccess(legacylines)
enddef

***************
*** 262,275 ****
endif

var legacylines = lines->mapnew((_, v) =>
! v->substitute('\<VAR\>', 'let', 'g')
! ->substitute('\<LET\>', 'let', 'g')
! ->substitute('#"', ' "', 'g'))
CheckLegacyFailure(legacylines, legacyError)

var vim9lines = lines->mapnew((_, v) =>
! v->substitute('\<VAR\>', 'var', 'g')
! ->substitute('\<LET ', '', 'g'))
CheckDefExecFailure(vim9lines, defError)
CheckScriptFailure(['vim9script'] + vim9lines, scriptError)
enddef
--- 262,275 ----
endif

var legacylines = lines->mapnew((_, v) =>
! v->substitute('\<VAR\>', 'let', 'g')
! ->substitute('\<LET\>', 'let', 'g')
! ->substitute('#"', ' "', 'g'))
CheckLegacyFailure(legacylines, legacyError)

var vim9lines = lines->mapnew((_, v) =>
! v->substitute('\<VAR\>', 'var', 'g')
! ->substitute('\<LET ', '', 'g'))
CheckDefExecFailure(vim9lines, defError)
CheckScriptFailure(['vim9script'] + vim9lines, scriptError)
enddef
*** ../vim-9.0.1256/src/testdir/test_assert.vim 2022-11-10 13:21:30.499305122 +0000
--- src/testdir/test_assert.vim 2023-01-26 21:04:06.544533171 +0000
***************
*** 190,198 ****
endfunc

func Test_compare_fail()
! let s:v = {}
! let s:x = {"a": s:v}
! let s:v["b"] = s:x
let s:w = {"c": s:x, "d": ''}
try
call assert_equal(s:w, '')
--- 190,198 ----
endfunc

func Test_compare_fail()
! let s:v = {}
! let s:x = {"a": s:v}
! let s:v["b"] = s:x
let s:w = {"c": s:x, "d": ''}
try
call assert_equal(s:w, '')
*** ../vim-9.0.1256/src/testdir/test_autocmd.vim 2023-01-17 21:20:40.393599014 +0000
--- src/testdir/test_autocmd.vim 2023-01-26 21:04:35.664515656 +0000
***************
*** 269,276 ****
augroup testing
au WinNew * call add(g:record, 'WinNew')
au WinClosed * call add(g:record, 'WinClosed')
! au WinEnter * call add(g:record, 'WinEnter')
! au WinLeave * call add(g:record, 'WinLeave')
au TabNew * call add(g:record, 'TabNew')
au TabClosed * call add(g:record, 'TabClosed')
au TabEnter * call add(g:record, 'TabEnter')
--- 269,276 ----
augroup testing
au WinNew * call add(g:record, 'WinNew')
au WinClosed * call add(g:record, 'WinClosed')
! au WinEnter * call add(g:record, 'WinEnter')
! au WinLeave * call add(g:record, 'WinLeave')
au TabNew * call add(g:record, 'TabNew')
au TabClosed * call add(g:record, 'TabClosed')
au TabEnter * call add(g:record, 'TabEnter')
***************
*** 3406,3412 ****

func Test_Visual_doautoall_redraw()
call setline(1, ['a', 'b'])
! new
wincmd p
call feedkeys("G\<C-V>", 'txn')
autocmd User Explode ++once redraw
--- 3406,3412 ----

func Test_Visual_doautoall_redraw()
call setline(1, ['a', 'b'])
! new
wincmd p
call feedkeys("G\<C-V>", 'txn')
autocmd User Explode ++once redraw
***************
*** 4121,4127 ****

func Test_autocmd_split_dummy()
" Autocommand trying to split a window containing a dummy buffer.
! auto BufReadPre * exe "sbuf " .. expand("<abuf>")
" Avoid the "W11" prompt
au FileChangedShell * let v:fcs_choice = 'reload'
func Xautocmd_changelist()
--- 4121,4127 ----

func Test_autocmd_split_dummy()
" Autocommand trying to split a window containing a dummy buffer.
! auto BufReadPre * exe "sbuf " .. expand("<abuf>")
" Avoid the "W11" prompt
au FileChangedShell * let v:fcs_choice = 'reload'
func Xautocmd_changelist()
*** ../vim-9.0.1256/src/testdir/test_blob.vim 2022-10-21 11:25:25.689652476 +0100
--- src/testdir/test_blob.vim 2023-01-26 21:05:00.676500733 +0000
***************
*** 498,504 ****
call assert_equal(b[-3 :], br5)
VAR br6 = readblob('Xblob', -3, 2)
call assert_equal(b[-3 : -2], br6)
!
#" reading past end of file, empty result
VAR br1e = readblob('Xblob', 10000)
call assert_equal(0z, br1e)
--- 498,504 ----
call assert_equal(b[-3 :], br5)
VAR br6 = readblob('Xblob', -3, 2)
call assert_equal(b[-3 : -2], br6)
!
#" reading past end of file, empty result
VAR br1e = readblob('Xblob', 10000)
call assert_equal(0z, br1e)
*** ../vim-9.0.1256/src/testdir/test_blockedit.vim 2022-09-27 22:18:10.364276480 +0100
--- src/testdir/test_blockedit.vim 2023-01-26 21:05:27.944484562 +0000
***************
*** 52,58 ****
let expected =<< trim END
vim9script
var d = {
! a: (): asdf => 0,
b: (): asdf => 0,
c: (): asdf => 0,
}
--- 52,58 ----
let expected =<< trim END
vim9script
var d = {
! a: (): asdf => 0,
b: (): asdf => 0,
c: (): asdf => 0,
}
*** ../vim-9.0.1256/src/testdir/test_channel.vim 2022-12-01 11:02:19.288680405 +0000
--- src/testdir/test_channel.vim 2023-01-26 21:05:53.496469533 +0000
***************
*** 20,26 ****
" call ch_logfile('channellog', 'w')

func SetUp()
! if g:testfunc =~ '_ipv6()$'
let s:localhost = '[::1]:'
let s:testscript = 'test_channel_6.py'
elseif g:testfunc =~ '_unix()$'
--- 20,26 ----
" call ch_logfile('channellog', 'w')

func SetUp()
! if g:testfunc =~ '_ipv6()$'
let s:localhost = '[::1]:'
let s:testscript = 'test_channel_6.py'
elseif g:testfunc =~ '_unix()$'
***************
*** 1220,1226 ****
func Test_pipe_to_buffer_raw()
let options = {'out_mode': 'raw', 'out_io': 'buffer', 'out_name': 'testout'}
split testout
! let job = job_start([s:python, '-c',
\ 'import sys; [sys.stdout.write(".") and sys.stdout.flush() for _ in range(10000)]'], options)
" the job may be done quickly, also accept "dead"
call assert_match('^\%(dead\|run\)$', job_status(job))
--- 1220,1226 ----
func Test_pipe_to_buffer_raw()
let options = {'out_mode': 'raw', 'out_io': 'buffer', 'out_name': 'testout'}
split testout
! let job = job_start([s:python, '-c',
\ 'import sys; [sys.stdout.write(".") and sys.stdout.flush() for _ in range(10000)]'], options)
" the job may be done quickly, also accept "dead"
call assert_match('^\%(dead\|run\)$', job_status(job))
*** ../vim-9.0.1256/src/testdir/test_cmd_lists.vim 2022-12-04 21:09:45.099172093 +0000
--- src/testdir/test_cmd_lists.vim 2023-01-26 21:07:13.376423105 +0000
***************
*** 50,56 ****
\ 'interface',
\ 'public',
\ 'static',
! \ 'this',
\ 'type',
\ '++',
\ '--',
--- 50,56 ----
\ 'interface',
\ 'public',
\ 'static',
! \ 'this',
\ 'type',
\ '++',
\ '--',
*** ../vim-9.0.1256/src/testdir/test_diffmode.vim 2022-09-20 22:01:29.404759229 +0100
--- src/testdir/test_diffmode.vim 2023-01-26 21:17:33.115518481 +0000
***************
*** 360,366 ****
call assert_equal('10', getline('.'))
21
call assert_equal('two', getline('.'))
! diffget one
call assert_equal('20', getline('.'))

31
--- 360,366 ----
call assert_equal('10', getline('.'))
21
call assert_equal('two', getline('.'))
! diffget one
call assert_equal('20', getline('.'))

31
***************
*** 1113,1119 ****
CheckScreendump

let lines =<< trim END
! void doNothing() {
int x = 0;
char *s = "hello";
return 5;
--- 1113,1119 ----
CheckScreendump

let lines =<< trim END
! void doNothing() {
int x = 0;
char *s = "hello";
return 5;
***************
*** 1121,1127 ****
END
call writefile(lines, 'Xprogram1.c', 'D')
let lines =<< trim END
! void doSomething() {
int x = 0;
char *s = "there";
return 5;
--- 1121,1127 ----
END
call writefile(lines, 'Xprogram1.c', 'D')
let lines =<< trim END
! void doSomething() {
int x = 0;
char *s = "there";
return 5;
***************
*** 1130,1136 ****
call writefile(lines, 'Xprogram2.c', 'D')

let lines =<< trim END
! edit Xprogram1.c
diffsplit Xprogram2.c
END
call writefile(lines, 'Xtest_diff_syntax', 'D')
--- 1130,1136 ----
call writefile(lines, 'Xprogram2.c', 'D')

let lines =<< trim END
! edit Xprogram1.c
diffsplit Xprogram2.c
END
call writefile(lines, 'Xtest_diff_syntax', 'D')
***************
*** 1307,1318 ****
func Test_diff_and_scroll()
" this was causing an ml_get error
set ls=2
! for i in range(winheight(0) * 2)
! call setline(i, i < winheight(0) - 10 ? i : i + 10)
endfor
vnew
! for i in range(winheight(0)*2 + 10)
! call setline(i, i < winheight(0) - 10 ? 0 : i)
endfor
diffthis
wincmd p
--- 1307,1318 ----
func Test_diff_and_scroll()
" this was causing an ml_get error
set ls=2
! for i in range(winheight(0) * 2)
! call setline(i, i < winheight(0) - 10 ? i : i + 10)
endfor
vnew
! for i in range(winheight(0)*2 + 10)
! call setline(i, i < winheight(0) - 10 ? 0 : i)
endfor
diffthis
wincmd p
*** ../vim-9.0.1256/src/testdir/test_edit.vim 2023-01-25 15:31:24.358723462 +0000
--- src/testdir/test_edit.vim 2023-01-26 21:17:48.071497588 +0000
***************
*** 2072,2078 ****
file %%%%%%%%%%%%%%%%%%%%%%%%%%
file %%%%%%
set readonly
! set ls=2

redraw!
set noreadonly ls&
--- 2072,2078 ----
file %%%%%%%%%%%%%%%%%%%%%%%%%%
file %%%%%%
set readonly
! set ls=2

redraw!
set noreadonly ls&
*** ../vim-9.0.1256/src/testdir/test_expand.vim 2022-09-21 21:59:58.273433517 +0100
--- src/testdir/test_expand.vim 2023-01-26 21:18:07.603470680 +0000
***************
*** 45,53 ****

func Test_expand_tilde_filename()
split ~
! call assert_equal('~', expand('%'))
call assert_notequal(expand('%:p'), expand('~/'))
! call assert_match('\~', expand('%:p'))
bwipe!
endfunc

--- 45,53 ----

func Test_expand_tilde_filename()
split ~
! call assert_equal('~', expand('%'))
call assert_notequal(expand('%:p'), expand('~/'))
! call assert_match('\~', expand('%:p'))
bwipe!
endfunc

*** ../vim-9.0.1256/src/testdir/test_expand_dllpath.vim 2020-08-12 17:43:41.000000000 +0100
--- src/testdir/test_expand_dllpath.vim 2023-01-26 21:18:34.695434079 +0000
***************
*** 4,15 ****
let $TEST_EXPAND_DLLPATH = '/dllpath/lib' . substitute(a:optname, '\zedll$', '.', '')
execute 'let dllpath_save = &' . a:optname
try
! execute 'set ' . a:optname . '=$TEST_EXPAND_DLLPATH'
! execute 'call assert_equal("' . $TEST_EXPAND_DLLPATH . '", &' . a:optname . ')'

execute 'set ' . a:optname . '=~' . $TEST_EXPAND_DLLPATH
let home = substitute($HOME, '\\', '/', 'g')
! execute 'call assert_equal("' . home . $TEST_EXPAND_DLLPATH . '", &' . a:optname . ')'
finally
execute 'let &' . a:optname . ' = dllpath_save'
let $TEST_EXPAND_DLLPATH = ''
--- 4,15 ----
let $TEST_EXPAND_DLLPATH = '/dllpath/lib' . substitute(a:optname, '\zedll$', '.', '')
execute 'let dllpath_save = &' . a:optname
try
! execute 'set ' . a:optname . '=$TEST_EXPAND_DLLPATH'
! execute 'call assert_equal("' . $TEST_EXPAND_DLLPATH . '", &' . a:optname . ')'

execute 'set ' . a:optname . '=~' . $TEST_EXPAND_DLLPATH
let home = substitute($HOME, '\\', '/', 'g')
! execute 'call assert_equal("' . home . $TEST_EXPAND_DLLPATH . '", &' . a:optname . ')'
finally
execute 'let &' . a:optname . ' = dllpath_save'
let $TEST_EXPAND_DLLPATH = ''
*** ../vim-9.0.1256/src/testdir/test_expand_func.vim 2022-09-21 21:59:58.273433517 +0100
--- src/testdir/test_expand_func.vim 2023-01-26 21:18:59.811400859 +0000
***************
*** 7,21 ****
let s:sflnum = str2nr(expand('<sflnum>'))

func s:expand_sfile()
! return expand('<sfile>')
endfunc

func s:expand_slnum()
! return str2nr(expand('<slnum>'))
endfunc

func s:expand_sflnum()
! return str2nr(expand('<sflnum>'))
endfunc

" This test depends on the location in the test file, put it first.
--- 7,21 ----
let s:sflnum = str2nr(expand('<sflnum>'))

func s:expand_sfile()
! return expand('<sfile>')
endfunc

func s:expand_slnum()
! return str2nr(expand('<slnum>'))
endfunc

func s:expand_sflnum()
! return str2nr(expand('<sflnum>'))
endfunc

" This test depends on the location in the test file, put it first.
*** ../vim-9.0.1256/src/testdir/test_fold.vim 2023-01-25 15:31:24.358723462 +0000
--- src/testdir/test_fold.vim 2023-01-26 21:20:52.763258916 +0000
***************
*** 456,462 ****
%foldopen!
13m7
call Check_foldlevels([1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 0])
!
bw!
endfunc

--- 456,462 ----
%foldopen!
13m7
call Check_foldlevels([1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 0])
!
bw!
endfunc

***************
*** 705,711 ****
let content =<< trim [CODE]
/*
* comment
! *
*
*/
int f(int* p) {
--- 705,711 ----
let content =<< trim [CODE]
/*
* comment
! *
*
*/
int f(int* p) {
*** ../vim-9.0.1256/src/testdir/test_goto.vim 2020-10-04 15:14:00.000000000 +0100
--- src/testdir/test_goto.vim 2023-01-26 21:21:45.507196331 +0000
***************
*** 17,23 ****
func Test_gD()
let lines =<< trim [CODE]
int x;
!
int func(void)
{
return x;
--- 17,23 ----
func Test_gD()
let lines =<< trim [CODE]
int x;
!
int func(void)
{
return x;
***************
*** 30,36 ****
func Test_gD_too()
let lines =<< trim [CODE]
Filename x;
!
int Filename
int func() {
Filename x;
--- 30,36 ----
func Test_gD_too()
let lines =<< trim [CODE]
Filename x;
!
int Filename
int func() {
Filename x;
***************
*** 44,50 ****
let lines =<< trim [CODE]
/* int x; */
int x;
!
int func(void)
{
return x;
--- 44,50 ----
let lines =<< trim [CODE]
/* int x; */
int x;
!
int func(void)
{
return x;
***************
*** 58,64 ****
let lines =<< trim [CODE]
int y /* , x */;
int x;
!
int func(void)
{
return x;
--- 58,64 ----
let lines =<< trim [CODE]
int y /* , x */;
int x;
!
int func(void)
{
return x;
***************
*** 72,78 ****
let lines =<< trim [CODE]
char *s[] = "x";
int x = 1;
!
int func(void)
{
return x;
--- 72,78 ----
let lines =<< trim [CODE]
char *s[] = "x";
int x = 1;
!
int func(void)
{
return x;
***************
*** 85,91 ****
func Test_gD_string_same_line()
let lines =<< trim [CODE]
char *s[] = "x", int x = 1;
!
int func(void)
{
return x;
--- 85,91 ----
func Test_gD_string_same_line()
let lines =<< trim [CODE]
char *s[] = "x", int x = 1;
!
int func(void)
{
return x;
***************
*** 99,105 ****
let lines =<< trim [CODE]
char c = 'x';
int x = 1;
!
int func(void)
{
return x;
--- 99,105 ----
let lines =<< trim [CODE]
char c = 'x';
int x = 1;
!
int func(void)
{
return x;
***************
*** 112,118 ****
func Test_gd()
let lines =<< trim [CODE]
int x;
!
int func(int x)
{
return x;
--- 112,118 ----
func Test_gd()
let lines =<< trim [CODE]
int x;
!
int func(int x)
{
return x;
***************
*** 146,152 ****
{
return x;
}
!
int func2(int x)
{
return x;
--- 146,152 ----
{
return x;
}
!
int func2(int x)
{
return x;
***************
*** 173,181 ****
def func1(a)
a + 1
end
!
a = 1
!
def func2()
return a
end
--- 173,181 ----
def func1(a)
a + 1
end
!
a = 1
!
def func2()
return a
end
***************
*** 252,262 ****
int func(void)
{
int y /* , x */;
!
for (/* int x = 0 */; y < 2; y++);
!
int x = 0;
!
return x;
}
[CODE]
--- 252,262 ----
int func(void)
{
int y /* , x */;
!
for (/* int x = 0 */; y < 2; y++);
!
int x = 0;
!
return x;
}
[CODE]
***************
*** 292,298 ****
{
char *s = "x";
int x = 1;
!
return x;
}
[CODE]
--- 292,298 ----
{
char *s = "x";
int x = 1;
!
return x;
}
[CODE]
***************
*** 304,310 ****
int func(void)
{
char *s = "x";
!
return x;
}
[CODE]
--- 304,310 ----
int func(void)
{
char *s = "x";
!
return x;
}
[CODE]
***************
*** 341,347 ****
char *b = "NULL";
return b;
}
!
return 0;
}
[CODE]
--- 341,347 ----
char *b = "NULL";
return b;
}
!
return 0;
}
[CODE]
*** ../vim-9.0.1256/src/testdir/test_increment.vim 2021-05-29 15:26:26.000000000 +0100
--- src/testdir/test_increment.vim 2023-01-26 21:22:46.803126140 +0000
***************
*** 704,710 ****
" Text:
" 1 23
" 4 56
! "
" Expected:
" 1) f2 Ctrl-V jl <ctrl-a>, repeat twice afterwards with .
" 1 26
--- 704,710 ----
" Text:
" 1 23
" 4 56
! "
" Expected:
" 1) f2 Ctrl-V jl <ctrl-a>, repeat twice afterwards with .
" 1 26
*** ../vim-9.0.1256/src/testdir/test_indent.vim 2022-09-29 21:01:52.202807948 +0100
--- src/testdir/test_indent.vim 2023-01-26 21:22:21.155155190 +0000
***************
*** 175,181 ****
endfunc

func Test_indent_func_with_gq()
!
function GetTeXIndent()
" Sample indent expression for TeX files
let lnum = prevnonblank(v:lnum - 1)
--- 175,181 ----
endfunc

func Test_indent_func_with_gq()
!
function GetTeXIndent()
" Sample indent expression for TeX files
let lnum = prevnonblank(v:lnum - 1)
***************
*** 186,192 ****
let line = getline(lnum)
let ind = indent(lnum)
" Add a 'shiftwidth' after beginning of environments.
! if line =~ '\\begin{center}'
let ind = ind + shiftwidth()
endif
return ind
--- 186,192 ----
let line = getline(lnum)
let ind = indent(lnum)
" Add a 'shiftwidth' after beginning of environments.
! if line =~ '\\begin{center}'
let ind = ind + shiftwidth()
endif
return ind
***************
*** 248,254 ****

bwipe!
delmark ab
! delfunction GetTeXIndent
endfu

func Test_formatting_keeps_first_line_indent()
--- 248,254 ----

bwipe!
delmark ab
! delfunction GetTeXIndent
endfu

func Test_formatting_keeps_first_line_indent()
*** ../vim-9.0.1256/src/testdir/test_ins_complete.vim 2022-12-15 13:48:25.594876357 +0000
--- src/testdir/test_ins_complete.vim 2023-01-26 21:23:19.135090100 +0000
***************
*** 2149,2155 ****

func Test_ins_complete_end_of_line()
" this was reading past the end of the line
! new
norm 8o€ý 
sil! norm o

--- 2149,2155 ----

func Test_ins_complete_end_of_line()
" this was reading past the end of the line
! new
norm 8o€ý 
sil! norm o

*** ../vim-9.0.1256/src/testdir/test_listchars.vim 2022-09-29 21:01:52.206807939 +0100
--- src/testdir/test_listchars.vim 2023-01-26 21:28:43.766757870 +0000
***************
*** 506,512 ****
set list

set listchars=eol:$,space:_,nbsp:=
!
let nbsp1 = nr2char(0xa0)
let nbsp2 = nr2char(0x202f)
call append(0, [
--- 506,512 ----
set list

set listchars=eol:$,space:_,nbsp:=
!
let nbsp1 = nr2char(0xa0)
let nbsp2 = nr2char(0x202f)
call append(0, [
*** ../vim-9.0.1256/src/testdir/test_map_functions.vim 2022-11-02 13:30:37.546314580 +0000
--- src/testdir/test_map_functions.vim 2023-01-28 18:12:29.232097800 +0000
***************
*** 1,7 ****
" Tests for maparg(), mapcheck(), mapset(), maplist()
" Also test utf8 map with a 0x80 byte.

! func s:SID()
return str2nr(matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze_SID$'))
endfunc

--- 1,7 ----
" Tests for maparg(), mapcheck(), mapset(), maplist()
" Also test utf8 map with a 0x80 byte.

! func s:SID()
return str2nr(matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze_SID$'))
endfunc

***************
*** 18,24 ****
call assert_equal({'silent': 0, 'noremap': 0, 'script': 0, 'lhs': 'foo<C-V>',
\ 'lhsraw': "foo\x80\xfc\x04V", 'lhsrawalt': "foo\x16",
\ 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': sid, 'scriptversion': 1,
! \ 'lnum': lnum + 1,
\ 'rhs': 'is<F4>foo', 'buffer': 0, 'abbr': 0, 'mode_bits': 0x47},
\ maparg('foo<C-V>', '', 0, 1))
call assert_equal({'silent': 1, 'noremap': 1, 'script': 1, 'lhs': 'bar',
--- 18,24 ----
call assert_equal({'silent': 0, 'noremap': 0, 'script': 0, 'lhs': 'foo<C-V>',
\ 'lhsraw': "foo\x80\xfc\x04V", 'lhsrawalt': "foo\x16",
\ 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': sid, 'scriptversion': 1,
! \ 'lnum': lnum + 1,
\ 'rhs': 'is<F4>foo', 'buffer': 0, 'abbr': 0, 'mode_bits': 0x47},
\ maparg('foo<C-V>', '', 0, 1))
call assert_equal({'silent': 1, 'noremap': 1, 'script': 1, 'lhs': 'bar',
*** ../vim-9.0.1256/src/testdir/test_method.vim 2022-09-17 21:07:52.107993141 +0100
--- src/testdir/test_method.vim 2023-01-28 18:13:01.012057807 +0000
***************
*** 127,133 ****

func Test_method_syntax()
eval [1, 2, 3] ->sort( )
! eval [1, 2, 3]
\ ->sort(
\ )
eval [1, 2, 3]->sort()
--- 127,133 ----

func Test_method_syntax()
eval [1, 2, 3] ->sort( )
! eval [1, 2, 3]
\ ->sort(
\ )
eval [1, 2, 3]->sort()
*** ../vim-9.0.1256/src/testdir/test_mswin_event.vim 2023-01-10 13:42:59.722128350 +0000
--- src/testdir/test_mswin_event.vim 2023-01-28 18:13:44.452006718 +0000
***************
*** 43,49 ****
endfor
endfunc

! " This tells Vim to execute the buffered keys as user commands,
" ie. same as feekdeys with mode X would do.
func ExecuteBufferedKeys()
if has('gui_running')
--- 43,49 ----
endfor
endfunc

! " This tells Vim to execute the buffered keys as user commands,
" ie. same as feekdeys with mode X would do.
func ExecuteBufferedKeys()
if has('gui_running')
***************
*** 158,164 ****
let s:MOD_MASK_SHIFT = 0x02
let s:MOD_MASK_CTRL = 0x04
let s:MOD_MASK_ALT = 0x08
!
let s:vim_key_modifiers = [
\ ["", 0, []],
\ ["S-", 2, [s:VK.LSHIFT]],
--- 158,164 ----
let s:MOD_MASK_SHIFT = 0x02
let s:MOD_MASK_CTRL = 0x04
let s:MOD_MASK_ALT = 0x08
!
let s:vim_key_modifiers = [
\ ["", 0, []],
\ ["S-", 2, [s:VK.LSHIFT]],
***************
*** 431,437 ****
" Test for lowercase 'a' to 'z', VK codes 65(0x41) - 90(0x5A)
" Note: VK_A-VK_Z virtual key codes coincide with uppercase ASCII codes A-Z.
" eg VK_A is 65, and the ASCII character code for uppercase 'A' is also 65.
! " Caution: these are interpreted as lowercase when Shift is NOT pressed.
" eg, sending VK_A (65) 'A' Key code without shift modifier, will produce ASCII
" char 'a' (91) as the output. The ASCII codes for the lowercase letters are
" numbered 32 higher than their uppercase versions.
--- 431,437 ----
" Test for lowercase 'a' to 'z', VK codes 65(0x41) - 90(0x5A)
" Note: VK_A-VK_Z virtual key codes coincide with uppercase ASCII codes A-Z.
" eg VK_A is 65, and the ASCII character code for uppercase 'A' is also 65.
! " Caution: these are interpreted as lowercase when Shift is NOT pressed.
" eg, sending VK_A (65) 'A' Key code without shift modifier, will produce ASCII
" char 'a' (91) as the output. The ASCII codes for the lowercase letters are
" numbered 32 higher than their uppercase versions.
***************
*** 808,814 ****
call MouseShiftWheelDown(2, 1)
call feedkeys("H", 'Lx!')
" should scroll from where it is (4) + visible buffer height - cmdheight
! let shift_scroll_height = line('w$') - line('w0') - &cmdheight
call assert_equal(4 + shift_scroll_height, line('.'))

" Shift Scroll Up
--- 808,814 ----
call MouseShiftWheelDown(2, 1)
call feedkeys("H", 'Lx!')
" should scroll from where it is (4) + visible buffer height - cmdheight
! let shift_scroll_height = line('w$') - line('w0') - &cmdheight
call assert_equal(4 + shift_scroll_height, line('.'))

" Shift Scroll Up
***************
*** 821,827 ****
call MSWinMouseEvent(0x100, 2, 1, 0, 0, 0x04)
call feedkeys("H", 'Lx!')
" should scroll from where it is (4) + visible buffer height - cmdheight
! let shift_scroll_height = line('w$') - line('w0') - &cmdheight
call assert_equal(4 + shift_scroll_height, line('.'))

" Shift Scroll Up (using MOD)
--- 821,827 ----
call MSWinMouseEvent(0x100, 2, 1, 0, 0, 0x04)
call feedkeys("H", 'Lx!')
" should scroll from where it is (4) + visible buffer height - cmdheight
! let shift_scroll_height = line('w$') - line('w0') - &cmdheight
call assert_equal(4 + shift_scroll_height, line('.'))

" Shift Scroll Up (using MOD)
***************
*** 854,860 ****
call feedkeys('g0', 'Lx!')
" should scroll from where it is (7) + window width
call assert_equal(7 + winwidth(0), col('.'))
!
" Shift Scroll Left
call MouseShiftWheelLeft(1, 50)
call feedkeys('g0', 'Lx!')
--- 854,860 ----
call feedkeys('g0', 'Lx!')
" should scroll from where it is (7) + window width
call assert_equal(7 + winwidth(0), col('.'))
!
" Shift Scroll Left
call MouseShiftWheelLeft(1, 50)
call feedkeys('g0', 'Lx!')
***************
*** 880,887 ****
\ substitute(e, '[<>]', '', 'g') .. '")<CR>'
endfor

! " Test various mouse buttons
! "(0 - Left, 1 - Middle, 2 - Right,
" 0x300 - MOUSE_X1/FROM_LEFT_3RD_BUTTON,
" 0x400 - MOUSE_X2/FROM_LEFT_4TH_BUTTON)
for button in [0, 1, 2, 0x300, 0x400]
--- 880,887 ----
\ substitute(e, '[<>]', '', 'g') .. '")<CR>'
endfor

! " Test various mouse buttons
! "(0 - Left, 1 - Middle, 2 - Right,
" 0x300 - MOUSE_X1/FROM_LEFT_3RD_BUTTON,
" 0x400 - MOUSE_X2/FROM_LEFT_4TH_BUTTON)
for button in [0, 1, 2, 0x300, 0x400]
***************
*** 971,980 ****
let args = #{button: 0, row: 2, col: 4, move: 0, multiclick: 0, modifiers: 0}
call assert_fails("call test_mswin_event('a1b2c3', args)", 'E475:')
call assert_fails("call test_mswin_event(test_null_string(), {})", 'E475:')
!
call assert_fails("call test_mswin_event([], args)", 'E1174:')
call assert_fails("call test_mswin_event('abc', [])", 'E1206:')
!
call assert_false(test_mswin_event('mouse', test_null_dict()))
let args = #{row: 2, col: 4, multiclick: 0, modifiers: 0}
call assert_false(test_mswin_event('mouse', args))
--- 971,980 ----
let args = #{button: 0, row: 2, col: 4, move: 0, multiclick: 0, modifiers: 0}
call assert_fails("call test_mswin_event('a1b2c3', args)", 'E475:')
call assert_fails("call test_mswin_event(test_null_string(), {})", 'E475:')
!
call assert_fails("call test_mswin_event([], args)", 'E1174:')
call assert_fails("call test_mswin_event('abc', [])", 'E1206:')
!
call assert_false(test_mswin_event('mouse', test_null_dict()))
let args = #{row: 2, col: 4, multiclick: 0, modifiers: 0}
call assert_false(test_mswin_event('mouse', args))
*** ../vim-9.0.1256/src/testdir/test_normal.vim 2023-01-25 15:31:24.358723462 +0000
--- src/testdir/test_normal.vim 2023-01-28 18:14:13.067975186 +0000
***************
*** 2209,2215 ****
a character like this:
.NH
End of text here
!
[DATA]
call assert_equal(expected, getline(1, '$'))

--- 2209,2215 ----
a character like this:
.NH
End of text here
!
[DATA]
call assert_equal(expected, getline(1, '$'))

*** ../vim-9.0.1256/src/testdir/test_popup.vim 2022-11-12 17:30:21.784661867 +0000
--- src/testdir/test_popup.vim 2023-01-28 18:14:45.851940995 +0000
***************
*** 16,22 ****
if !empty(entered)
let mth = filter(mth, 'v:val=~"^".entered')
endif
! call complete(1, mth)
return ''
endfunc

--- 16,22 ----
if !empty(entered)
let mth = filter(mth, 'v:val=~"^".entered')
endif
! call complete(1, mth)
return ''
endfunc

***************
*** 74,80 ****
call feedkeys("aJu\<f5>\<c-p>l\<c-y>", 'tx')
call assert_equal(["Jul"], getline(1,2))
%d
!
" any-non printable, non-white character: Add this character and
" reduce number of matches
call feedkeys("aJu\<f5>\<c-p>l\<c-n>\<c-y>", 'tx')
--- 74,80 ----
call feedkeys("aJu\<f5>\<c-p>l\<c-y>", 'tx')
call assert_equal(["Jul"], getline(1,2))
%d
!
" any-non printable, non-white character: Add this character and
" reduce number of matches
call feedkeys("aJu\<f5>\<c-p>l\<c-n>\<c-y>", 'tx')
***************
*** 96,102 ****
call feedkeys("aJ\<f5>".repeat("\<c-n>",3)."\<c-l>\<esc>", 'tx')
call assert_equal(["J "], getline(1,2))
%d
!
" <c-l> - Insert one character from the current match
call feedkeys("aJ\<f5>".repeat("\<c-n>",4)."\<c-l>\<esc>", 'tx')
call assert_equal(["January "], getline(1,2))
--- 96,102 ----
call feedkeys("aJ\<f5>".repeat("\<c-n>",3)."\<c-l>\<esc>", 'tx')
call assert_equal(["J "], getline(1,2))
%d
!
" <c-l> - Insert one character from the current match
call feedkeys("aJ\<f5>".repeat("\<c-n>",4)."\<c-l>\<esc>", 'tx')
call assert_equal(["January "], getline(1,2))
***************
*** 856,862 ****
call term_sendkeys(buf, "jI123456789_\<Esc>")
call term_sendkeys(buf, "GA\<C-N>")
call VerifyScreenDump(buf, 'Test_popup_position_04', {'rows': 10})
!
call term_sendkeys(buf, "\<Esc>u")
call StopVimInTerminal(buf)
endfunc
--- 856,862 ----
call term_sendkeys(buf, "jI123456789_\<Esc>")
call term_sendkeys(buf, "GA\<C-N>")
call VerifyScreenDump(buf, 'Test_popup_position_04', {'rows': 10})
!
call term_sendkeys(buf, "\<Esc>u")
call StopVimInTerminal(buf)
endfunc
*** ../vim-9.0.1256/src/testdir/test_popupwin_textprop.vim 2022-09-30 21:57:07.547153409 +0100
--- src/testdir/test_popupwin_textprop.vim 2023-01-28 18:20:32.239677408 +0000
***************
*** 21,27 ****
\ bufnr: bufnr('%'),
\ })
let winid = popup_create('the text', #{
! \ pos: 'botleft',
\ textprop: 'popupMarker',
\ border: [],
\ padding: [0,1,0,1],
--- 21,27 ----
\ bufnr: bufnr('%'),
\ })
let winid = popup_create('the text', #{
! \ pos: 'botleft',
\ textprop: 'popupMarker',
\ border: [],
\ padding: [0,1,0,1],
***************
*** 67,91 ****
\ type: 'popupMarker',
\ })
let winid = popup_create('bottom left', #{
! \ pos: 'botleft',
\ textprop: 'popupMarker',
\ textpropwin: win_getid(),
\ padding: [0,1,0,1],
\ })
let winid = popup_create('bottom right', #{
! \ pos: 'botright',
\ textprop: 'popupMarker',
\ border: [],
\ padding: [0,1,0,1],
\ })
let winid = popup_create('top left', #{
! \ pos: 'topleft',
\ textprop: 'popupMarker',
\ border: [],
\ padding: [0,1,0,1],
\ })
let winid = popup_create('top right', #{
! \ pos: 'topright',
\ textprop: 'popupMarker',
\ padding: [0,1,0,1],
\ })
--- 67,91 ----
\ type: 'popupMarker',
\ })
let winid = popup_create('bottom left', #{
! \ pos: 'botleft',
\ textprop: 'popupMarker',
\ textpropwin: win_getid(),
\ padding: [0,1,0,1],
\ })
let winid = popup_create('bottom right', #{
! \ pos: 'botright',
\ textprop: 'popupMarker',
\ border: [],
\ padding: [0,1,0,1],
\ })
let winid = popup_create('top left', #{
! \ pos: 'topleft',
\ textprop: 'popupMarker',
\ border: [],
\ padding: [0,1,0,1],
\ })
let winid = popup_create('top right', #{
! \ pos: 'topright',
\ textprop: 'popupMarker',
\ padding: [0,1,0,1],
\ })
***************
*** 127,140 ****
\ type: 'popupMarker',
\ })
let winid = popup_create('bottom left', #{
! \ pos: 'botleft',
\ line: -1,
\ col: 2,
\ textprop: 'popupMarker',
\ padding: [0,1,0,1],
\ })
let winid = popup_create('bottom right', #{
! \ pos: 'botright',
\ line: -1,
\ col: -2,
\ textprop: 'popupMarker',
--- 127,140 ----
\ type: 'popupMarker',
\ })
let winid = popup_create('bottom left', #{
! \ pos: 'botleft',
\ line: -1,
\ col: 2,
\ textprop: 'popupMarker',
\ padding: [0,1,0,1],
\ })
let winid = popup_create('bottom right', #{
! \ pos: 'botright',
\ line: -1,
\ col: -2,
\ textprop: 'popupMarker',
***************
*** 142,148 ****
\ padding: [0,1,0,1],
\ })
let winid = popup_create('top left', #{
! \ pos: 'topleft',
\ line: 1,
\ col: 2,
\ textprop: 'popupMarker',
--- 142,148 ----
\ padding: [0,1,0,1],
\ })
let winid = popup_create('top left', #{
! \ pos: 'topleft',
\ line: 1,
\ col: 2,
\ textprop: 'popupMarker',
***************
*** 150,156 ****
\ padding: [0,1,0,1],
\ })
let winid = popup_create('top right', #{
! \ pos: 'topright',
\ line: 1,
\ col: -2,
\ textprop: 'popupMarker',
--- 150,156 ----
\ padding: [0,1,0,1],
\ })
let winid = popup_create('top right', #{
! \ pos: 'topright',
\ line: 1,
\ col: -2,
\ textprop: 'popupMarker',
*** ../vim-9.0.1256/src/testdir/test_quickfix.vim 2022-12-12 13:20:37.622734681 +0000
--- src/testdir/test_quickfix.vim 2023-01-28 18:17:51.275780733 +0000
***************
*** 1211,1230 ****
"Xtestfile", linenr 16: yet another problem
Error in "Xtestfile" at line 17:
x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17
^
Error in "Xtestfile" at line 18:
x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18
.............^
Error in "Xtestfile" at line 19:
x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19
--------------^
Error in "Xtestfile" at line 20:
x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20
! ^

Does anyone know what is the problem and how to correction it?
"Xtestfile", line 21 col 9: What is the title of the quickfix window?
--- 1211,1230 ----
"Xtestfile", linenr 16: yet another problem
Error in "Xtestfile" at line 17:
x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17
^
Error in "Xtestfile" at line 18:
x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18
.............^
Error in "Xtestfile" at line 19:
x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19
--------------^
Error in "Xtestfile" at line 20:
x should be a dot
! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20
! ^

Does anyone know what is the problem and how to correction it?
"Xtestfile", line 21 col 9: What is the title of the quickfix window?
***************
*** 1570,1576 ****
failUnlessEqual
raise self.failureException, \\
W:AssertionError: 34 != 33
!
--------------------------------------------------------------
Ran 27 tests in 0.063s
[DATA]
--- 1570,1576 ----
failUnlessEqual
raise self.failureException, \\
W:AssertionError: 34 != 33
!
--------------------------------------------------------------
Ran 27 tests in 0.063s
[DATA]
*** ../vim-9.0.1256/src/testdir/test_regexp_latin.vim 2022-09-08 12:17:02.006342437 +0100
--- src/testdir/test_regexp_latin.vim 2023-01-28 18:18:39.099747063 +0000
***************
*** 1149,1155 ****
# matchstr().
enew
setline(1, ['one', 'two', 'three'])
! :3
:/ee
bwipe!
set re=1
--- 1149,1155 ----
# matchstr().
enew
setline(1, ['one', 'two', 'three'])
! :3
:/ee
bwipe!
set re=1
*** ../vim-9.0.1256/src/testdir/test_scroll_opt.vim 2023-01-26 14:14:18.835484390 +0000
--- src/testdir/test_scroll_opt.vim 2023-01-28 18:24:29.483566847 +0000
***************
*** 271,288 ****
call term_sendkeys(buf, ":set scrolloff=1\<CR>")
call term_sendkeys(buf, "10|\<C-E>")
call VerifyScreenDump(buf, 'Test_smooth_long_6', {})
!
" 'scrolloff' set to 1, scrolling down, cursor moves screen line up
call term_sendkeys(buf, "\<C-E>")
call term_sendkeys(buf, "gjgj")
call term_sendkeys(buf, "\<C-Y>")
call VerifyScreenDump(buf, 'Test_smooth_long_7', {})
!
" 'scrolloff' set to 2, scrolling up, cursor moves screen line down
call term_sendkeys(buf, ":set scrolloff=2\<CR>")
call term_sendkeys(buf, "10|\<C-E>")
call VerifyScreenDump(buf, 'Test_smooth_long_8', {})
!
" 'scrolloff' set to 2, scrolling down, cursor moves screen line up
call term_sendkeys(buf, "\<C-E>")
call term_sendkeys(buf, "gj")
--- 271,288 ----
call term_sendkeys(buf, ":set scrolloff=1\<CR>")
call term_sendkeys(buf, "10|\<C-E>")
call VerifyScreenDump(buf, 'Test_smooth_long_6', {})
!
" 'scrolloff' set to 1, scrolling down, cursor moves screen line up
call term_sendkeys(buf, "\<C-E>")
call term_sendkeys(buf, "gjgj")
call term_sendkeys(buf, "\<C-Y>")
call VerifyScreenDump(buf, 'Test_smooth_long_7', {})
!
" 'scrolloff' set to 2, scrolling up, cursor moves screen line down
call term_sendkeys(buf, ":set scrolloff=2\<CR>")
call term_sendkeys(buf, "10|\<C-E>")
call VerifyScreenDump(buf, 'Test_smooth_long_8', {})
!
" 'scrolloff' set to 2, scrolling down, cursor moves screen line up
call term_sendkeys(buf, "\<C-E>")
call term_sendkeys(buf, "gj")
***************
*** 320,326 ****
call term_sendkeys(buf, "3Gzt")
call term_sendkeys(buf, "\<C-E>j")
call VerifyScreenDump(buf, 'Test_smooth_long_15', {})
!
call StopVimInTerminal(buf)
endfunc

--- 320,326 ----
call term_sendkeys(buf, "3Gzt")
call term_sendkeys(buf, "\<C-E>j")
call VerifyScreenDump(buf, 'Test_smooth_long_15', {})
!
call StopVimInTerminal(buf)
endfunc

***************
*** 335,341 ****
call writefile(lines, 'XSmoothOneLong', 'D')
let buf = RunVimInTerminal('-S XSmoothOneLong', #{rows: 6, cols: 40})
call VerifyScreenDump(buf, 'Test_smooth_one_long_1', {})
!
call term_sendkeys(buf, "\<C-E>")
call VerifyScreenDump(buf, 'Test_smooth_one_long_2', {})

--- 335,341 ----
call writefile(lines, 'XSmoothOneLong', 'D')
let buf = RunVimInTerminal('-S XSmoothOneLong', #{rows: 6, cols: 40})
call VerifyScreenDump(buf, 'Test_smooth_one_long_1', {})
!
call term_sendkeys(buf, "\<C-E>")
call VerifyScreenDump(buf, 'Test_smooth_one_long_2', {})

***************
*** 357,363 ****
call writefile(lines, 'XSmoothLongShowbreak', 'D')
let buf = RunVimInTerminal('-S XSmoothLongShowbreak', #{rows: 6, cols: 40})
call VerifyScreenDump(buf, 'Test_smooth_long_showbreak_1', {})
!
call term_sendkeys(buf, "\<C-E>")
call VerifyScreenDump(buf, 'Test_smooth_long_showbreak_2', {})

--- 357,363 ----
call writefile(lines, 'XSmoothLongShowbreak', 'D')
let buf = RunVimInTerminal('-S XSmoothLongShowbreak', #{rows: 6, cols: 40})
call VerifyScreenDump(buf, 'Test_smooth_long_showbreak_1', {})
!
call term_sendkeys(buf, "\<C-E>")
call VerifyScreenDump(buf, 'Test_smooth_long_showbreak_2', {})

***************
*** 465,471 ****
call NewWindow(10, 20)
setl smoothscroll wrap
setl scrolloff=3
!
" 120 chars are 6 screen lines
call setline(1, "abcdefghijklmnopqrstABCDEFGHIJKLMNOPQRSTabcdefghijklmnopqrstABCDEFGHIJKLMNOPQRSTabcdefghijklmnopqrstABCDEFGHIJKLMNOPQRST")
call setline(2, "below")
--- 465,471 ----
call NewWindow(10, 20)
setl smoothscroll wrap
setl scrolloff=3
!
" 120 chars are 6 screen lines
call setline(1, "abcdefghijklmnopqrstABCDEFGHIJKLMNOPQRSTabcdefghijklmnopqrstABCDEFGHIJKLMNOPQRSTabcdefghijklmnopqrstABCDEFGHIJKLMNOPQRST")
call setline(2, "below")
*** ../vim-9.0.1256/src/testdir/test_signals.vim 2022-10-10 22:39:38.203545897 +0100
--- src/testdir/test_signals.vim 2023-01-28 18:24:56.831556496 +0000
***************
*** 133,139 ****
sleep 100m

" We resume after the suspend. Sleep a bit for the signal to take effect,
! " also when running under valgrind.
exe 'silent !kill -s CONT ' .. pid_vim
call WaitForAssert({-> assert_true(filereadable('XautoOut2'))})
sleep 10m
--- 133,139 ----
sleep 100m

" We resume after the suspend. Sleep a bit for the signal to take effect,
! " also when running under valgrind.
exe 'silent !kill -s CONT ' .. pid_vim
call WaitForAssert({-> assert_true(filereadable('XautoOut2'))})
sleep 10m
*** ../vim-9.0.1256/src/testdir/test_signs.vim 2022-12-12 13:20:37.622734681 +0000
--- src/testdir/test_signs.vim 2023-01-28 18:25:32.679543558 +0000
***************
*** 1775,1784 ****
let lines =<< trim END
call setline(1, [repeat('x', 75), 'mmmm', 'yyyy'])
call cursor(2,1)
! sign define s1 texthl=Search text==>
! sign define s2 linehl=Pmenu
redraw
! sign place 10 line=2 name=s1
END
call writefile(lines, 'XtestSigncolumn', 'D')
let buf = RunVimInTerminal('-S XtestSigncolumn', {'rows': 6})
--- 1775,1784 ----
let lines =<< trim END
call setline(1, [repeat('x', 75), 'mmmm', 'yyyy'])
call cursor(2,1)
! sign define s1 texthl=Search text==>
! sign define s2 linehl=Pmenu
redraw
! sign place 10 line=2 name=s1
END
call writefile(lines, 'XtestSigncolumn', 'D')
let buf = RunVimInTerminal('-S XtestSigncolumn', {'rows': 6})
*** ../vim-9.0.1256/src/testdir/test_statusline.vim 2023-01-14 11:46:09.704717821 +0000
--- src/testdir/test_statusline.vim 2023-01-28 18:25:54.459536012 +0000
***************
*** 413,419 ****
" Test statusline works with 80+ items
function! StatusLabel()
redrawstatus
! return '[label]'
endfunc
let statusline = '%{StatusLabel()}'
for i in range(150)
--- 413,419 ----
" Test statusline works with 80+ items
function! StatusLabel()
redrawstatus
! return '[label]'
endfunc
let statusline = '%{StatusLabel()}'
for i in range(150)
*** ../vim-9.0.1256/src/testdir/test_substitute.vim 2023-01-04 17:17:49.121005598 +0000
--- src/testdir/test_substitute.vim 2023-01-28 18:26:16.943528463 +0000
***************
*** 707,713 ****
endfunc

func Test_nocatch_sub_failure_handling()
! " normal error results in all replacements
func Foo()
foobar
endfunc
--- 707,713 ----
endfunc

func Test_nocatch_sub_failure_handling()
! " normal error results in all replacements
func Foo()
foobar
endfunc
*** ../vim-9.0.1256/src/testdir/test_tagfunc.vim 2022-10-15 20:52:22.559752564 +0100
--- src/testdir/test_tagfunc.vim 2023-01-28 18:26:40.475520823 +0000
***************
*** 93,99 ****
delf NullTagFunc

bwipe!
! set tags& tfu& cpt&
call delete('Xfile1')
endfunc

--- 93,99 ----
delf NullTagFunc

bwipe!
! set tags& tfu& cpt&
call delete('Xfile1')
endfunc

*** ../vim-9.0.1256/src/testdir/test_tagjump.vim 2022-12-05 13:50:49.718052362 +0000
--- src/testdir/test_tagjump.vim 2023-01-28 18:28:13.575492912 +0000
***************
*** 743,749 ****
let code =<< trim [CODE]

int FUNC1 (int x) { }
! int
func2 (int y) { }
int * func3 () { }

--- 743,749 ----
let code =<< trim [CODE]

int FUNC1 (int x) { }
! int
func2 (int y) { }
int * func3 () { }

*** ../vim-9.0.1256/src/testdir/test_termcodes.vim 2022-12-20 20:01:09.624090908 +0000
--- src/testdir/test_termcodes.vim 2023-01-28 18:31:00.283450557 +0000
***************
*** 894,900 ****
let save_term = &term
let save_ttymouse = &ttymouse
call test_override('no_query_mouse', 1)
!
" 'mousetime' must be sufficiently large, or else the test is flaky when
" using a ssh connection with X forwarding; i.e. ssh -X (issue #7563).
set mouse=a term=xterm mousetime=600
--- 894,900 ----
let save_term = &term
let save_ttymouse = &ttymouse
call test_override('no_query_mouse', 1)
!
" 'mousetime' must be sufficiently large, or else the test is flaky when
" using a ssh connection with X forwarding; i.e. ssh -X (issue #7563).
set mouse=a term=xterm mousetime=600
*** ../vim-9.0.1256/src/testdir/test_textprop.vim 2023-01-21 15:54:40.426545808 +0000
--- src/testdir/test_textprop.vim 2023-01-28 18:31:41.859441279 +0000
***************
*** 2745,2751 ****

let lines =<< trim END
vim9script
!
setline(1, ['vim9script', '', 'three', ''])

# Add text prop below empty line 2 with padding.
--- 2745,2751 ----

let lines =<< trim END
vim9script
!
setline(1, ['vim9script', '', 'three', ''])

# Add text prop below empty line 2 with padding.
***************
*** 2768,2780 ****
END
call writefile(lines, 'XscriptPropBelowAfterEmpty', 'D')
let buf = RunVimInTerminal('-S XscriptPropBelowAfterEmpty', #{rows: 8, cols: 60})
! call VerifyScreenDump(buf, 'Test_prop_below_after_empty_1', {})

call term_sendkeys(buf, ":set number\<CR>")
! call VerifyScreenDump(buf, 'Test_prop_below_after_empty_2', {})

call term_sendkeys(buf, ":set nowrap\<CR>")
! call VerifyScreenDump(buf, 'Test_prop_below_after_empty_3', {})

call StopVimInTerminal(buf)
endfunc
--- 2768,2780 ----
END
call writefile(lines, 'XscriptPropBelowAfterEmpty', 'D')
let buf = RunVimInTerminal('-S XscriptPropBelowAfterEmpty', #{rows: 8, cols: 60})
! call VerifyScreenDump(buf, 'Test_prop_below_after_empty_1', {})

call term_sendkeys(buf, ":set number\<CR>")
! call VerifyScreenDump(buf, 'Test_prop_below_after_empty_2', {})

call term_sendkeys(buf, ":set nowrap\<CR>")
! call VerifyScreenDump(buf, 'Test_prop_below_after_empty_3', {})

call StopVimInTerminal(buf)
endfunc
***************
*** 3310,3316 ****
prop_type_add('propnotincl', {highlight: 'NonText', start_incl: false})
prop_add(1, 15, {type: 'propnotincl', text: 'before '})

! set cindent sw=4
prop_type_add('argname', {highlight: 'DiffChange', start_incl: true})
prop_add(3, 10, {type: 'argname', text: 'arg: '})
END
--- 3310,3316 ----
prop_type_add('propnotincl', {highlight: 'NonText', start_incl: false})
prop_add(1, 15, {type: 'propnotincl', text: 'before '})

! set cindent sw=4
prop_type_add('argname', {highlight: 'DiffChange', start_incl: true})
prop_add(3, 10, {type: 'argname', text: 'arg: '})
END
***************
*** 3751,3757 ****

call StopVimInTerminal(buf)
endfunc
!
func Test_error_when_using_negative_id()
call prop_type_add('test1', #{highlight: 'ErrorMsg'})
call prop_add(1, 1, #{type: 'test1', text: 'virtual'})
--- 3751,3757 ----

call StopVimInTerminal(buf)
endfunc
!
func Test_error_when_using_negative_id()
call prop_type_add('test1', #{highlight: 'ErrorMsg'})
call prop_add(1, 1, #{type: 'test1', text: 'virtual'})
*** ../vim-9.0.1256/src/testdir/test_timers.vim 2022-10-15 20:52:22.563752598 +0100
--- src/testdir/test_timers.vim 2023-01-28 18:32:08.535435556 +0000
***************
*** 393,399 ****
" vgetc().
func Test_nocatch_timer_garbage_collect()
" FIXME: why does this fail only on MacOS M1?
! try
CheckNotMacM1
catch /Skipped/
let g:skipped_reason = v:exception
--- 393,399 ----
" vgetc().
func Test_nocatch_timer_garbage_collect()
" FIXME: why does this fail only on MacOS M1?
! try
CheckNotMacM1
catch /Skipped/
let g:skipped_reason = v:exception
*** ../vim-9.0.1256/src/testdir/test_true_false.vim 2022-09-17 21:07:52.107993141 +0100
--- src/testdir/test_true_false.vim 2023-01-28 18:32:36.079429811 +0000
***************
*** 47,57 ****
endfunc

function Try_arg_true_false(expr, false_val, true_val)
! for v in ['v:false', '0', '"0"', '"foo"', '" "']
let r = eval(substitute(a:expr, '%v%', v, ''))
call assert_equal(a:false_val, r, 'result for ' . v . ' is not ' . string(a:false_val) . ' but ' . string(r))
endfor
! for v in ['v:true', '1', '"1"', '"1foo"']
let r = eval(substitute(a:expr, '%v%', v, ''))
call assert_equal(a:true_val, r, 'result for ' . v . ' is not ' . string(a:true_val) . ' but ' . string(r))
endfor
--- 47,57 ----
endfunc

function Try_arg_true_false(expr, false_val, true_val)
! for v in ['v:false', '0', '"0"', '"foo"', '" "']
let r = eval(substitute(a:expr, '%v%', v, ''))
call assert_equal(a:false_val, r, 'result for ' . v . ' is not ' . string(a:false_val) . ' but ' . string(r))
endfor
! for v in ['v:true', '1', '"1"', '"1foo"']
let r = eval(substitute(a:expr, '%v%', v, ''))
call assert_equal(a:true_val, r, 'result for ' . v . ' is not ' . string(a:true_val) . ' but ' . string(r))
endfor
***************
*** 115,125 ****
endfunc

function Try_arg_non_zero(expr, false_val, true_val)
! for v in ['v:false', '0', '[1]', '{2:3}', '3.4']
let r = eval(substitute(a:expr, '%v%', v, ''))
call assert_equal(a:false_val, r, 'result for ' . v . ' is not ' . a:false_val . ' but ' . r)
endfor
! for v in ['v:true', '1', '" "', '"0"']
let r = eval(substitute(a:expr, '%v%', v, ''))
call assert_equal(a:true_val, r, 'result for ' . v . ' is not ' . a:true_val . ' but ' . r)
endfor
--- 115,125 ----
endfunc

function Try_arg_non_zero(expr, false_val, true_val)
! for v in ['v:false', '0', '[1]', '{2:3}', '3.4']
let r = eval(substitute(a:expr, '%v%', v, ''))
call assert_equal(a:false_val, r, 'result for ' . v . ' is not ' . a:false_val . ' but ' . r)
endfor
! for v in ['v:true', '1', '" "', '"0"']
let r = eval(substitute(a:expr, '%v%', v, ''))
call assert_equal(a:true_val, r, 'result for ' . v . ' is not ' . a:true_val . ' but ' . r)
endfor
***************
*** 135,148 ****
call Try_arg_non_zero("shellescape('foo%', %v%)", "'foo%'", "'foo\\%'")

" visualmode() needs to be called twice to check
! for v in [v:false, 0, [1], {2:3}, 3.4]
normal vv
let r = visualmode(v)
call assert_equal('v', r, 'result for ' . string(v) . ' is not "v" but ' . r)
let r = visualmode(v)
call assert_equal('v', r, 'result for ' . string(v) . ' is not "v" but ' . r)
endfor
! for v in [v:true, 1, " ", "0"]
normal vv
let r = visualmode(v)
call assert_equal('v', r, 'result for ' . v . ' is not "v" but ' . r)
--- 135,148 ----
call Try_arg_non_zero("shellescape('foo%', %v%)", "'foo%'", "'foo\\%'")

" visualmode() needs to be called twice to check
! for v in [v:false, 0, [1], {2:3}, 3.4]
normal vv
let r = visualmode(v)
call assert_equal('v', r, 'result for ' . string(v) . ' is not "v" but ' . r)
let r = visualmode(v)
call assert_equal('v', r, 'result for ' . string(v) . ' is not "v" but ' . r)
endfor
! for v in [v:true, 1, " ", "0"]
normal vv
let r = visualmode(v)
call assert_equal('v', r, 'result for ' . v . ' is not "v" but ' . r)
*** ../vim-9.0.1256/src/testdir/test_utf8.vim 2023-01-20 16:00:49.542341277 +0000
--- src/testdir/test_utf8.vim 2023-01-28 18:33:15.071421963 +0000
***************
*** 1,5 ****
" Tests for Unicode manipulations
!
source check.vim
source view_util.vim
source screendump.vim
--- 1,5 ----
" Tests for Unicode manipulations
!
source check.vim
source view_util.vim
source screendump.vim
***************
*** 107,113 ****

let save_encoding = &encoding
set encoding=latin1
!
let lres = str2list(s, 1)
let sres = list2str(l, 1)
call assert_equal([65, 66, 67], str2list("ABC"))
--- 107,113 ----

let save_encoding = &encoding
set encoding=latin1
!
let lres = str2list(s, 1)
let sres = list2str(l, 1)
call assert_equal([65, 66, 67], str2list("ABC"))
***************
*** 123,129 ****
func Test_screenchar_utf8()
new

! " 1-cell, with composing characters
call setline(1, ["ABC\u0308"])
redraw
call assert_equal([0x0041], screenchars(1, 1))
--- 123,129 ----
func Test_screenchar_utf8()
new

! " 1-cell, with composing characters
call setline(1, ["ABC\u0308"])
redraw
call assert_equal([0x0041], screenchars(1, 1))
***************
*** 133,139 ****
call assert_equal("B", screenstring(1, 2))
call assert_equal("C\u0308", screenstring(1, 3))

! " 2-cells, with composing characters
let text = "\u3042\u3044\u3046\u3099"
call setline(1, text)
redraw
--- 133,139 ----
call assert_equal("B", screenstring(1, 2))
call assert_equal("C\u0308", screenstring(1, 3))

! " 2-cells, with composing characters
let text = "\u3042\u3044\u3046\u3099"
call setline(1, text)
redraw
*** ../vim-9.0.1256/src/testdir/test_vim9_assign.vim 2022-10-15 20:06:30.280328838 +0100
--- src/testdir/test_vim9_assign.vim 2023-01-28 18:33:59.135413457 +0000
***************
*** 1833,1839 ****
v9.CheckDefAndScriptFailure(lines, 'E1012: Type mismatch; expected func(number) but got func(any): bool')

lines =<< trim END
! echo filter([1, 2, 3], (_, v: string) => v + 1)
END
v9.CheckDefAndScriptFailure(lines, 'E1051:')
enddef
--- 1833,1839 ----
v9.CheckDefAndScriptFailure(lines, 'E1012: Type mismatch; expected func(number) but got func(any): bool')

lines =<< trim END
! echo filter([1, 2, 3], (_, v: string) => v + 1)
END
v9.CheckDefAndScriptFailure(lines, 'E1051:')
enddef
***************
*** 1935,1941 ****
endif
return 'this'
endfunc
! var val: string = GetValue()
# env var is always a string
var env = $TERM
END
--- 1935,1941 ----
endif
return 'this'
endfunc
! var val: string = GetValue()
# env var is always a string
var env = $TERM
END
*** ../vim-9.0.1256/src/testdir/test_vim9_class.vim 2023-01-28 15:19:36.960757169 +0000
--- src/testdir/test_vim9_class.vim 2023-01-28 18:36:41.315385142 +0000
***************
*** 48,54 ****
lines =<< trim END
vim9script
class Something
! endclass school's out
END
v9.CheckScriptFailure(lines, 'E488:')

--- 48,54 ----
lines =<< trim END
vim9script
class Something
! endclass school's out
END
v9.CheckScriptFailure(lines, 'E488:')

***************
*** 623,629 ****
TextPos.AddToCounter(3)
assert_equal(3, TextPos.counter)
assert_fails('echo TextPos.noSuchMember', 'E1338:')
!
def GetCounter(): number
return TextPos.counter
enddef
--- 623,629 ----
TextPos.AddToCounter(3)
assert_equal(3, TextPos.counter)
assert_fails('echo TextPos.noSuchMember', 'E1338:')
!
def GetCounter(): number
return TextPos.counter
enddef
*** ../vim-9.0.1256/src/testdir/test_vim9_disassemble.vim 2022-10-15 20:06:30.284328833 +0100
--- src/testdir/test_vim9_disassemble.vim 2023-01-28 18:39:29.227359595 +0000
***************
*** 2085,2091 ****
'8 COND2BOOL\_s*' ..
'9 STORE $3\_s*' ..
'return name\_s*' ..
! '\d\+ LOAD $3\_s*' ..
'\d\+ RETURN',
instr)
assert_equal(true, InvertBool())
--- 2085,2091 ----
'8 COND2BOOL\_s*' ..
'9 STORE $3\_s*' ..
'return name\_s*' ..
! '\d\+ LOAD $3\_s*' ..
'\d\+ RETURN',
instr)
assert_equal(true, InvertBool())
*** ../vim-9.0.1256/src/testdir/test_vim9_expr.vim 2023-01-09 15:10:36.245547545 +0000
--- src/testdir/test_vim9_expr.vim 2023-01-28 18:42:18.343198644 +0000
***************
*** 44,50 ****
echo ['a'] + (1 ? ['b'] : ['c'] # comment
)

! # with constant condition expression is not evaluated
assert_equal('one', 1 ? 'one' : xxx)

var Some: func = function('len')
--- 44,50 ----
echo ['a'] + (1 ? ['b'] : ['c'] # comment
)

! # with constant condition expression is not evaluated
assert_equal('one', 1 ? 'one' : xxx)

var Some: func = function('len')
***************
*** 74,80 ****
# check line continuation
var lines =<< trim END
var name = 1
! ? 'yes'
: 'no'
assert_equal('yes', name)
END
--- 74,80 ----
# check line continuation
var lines =<< trim END
var name = 1
! ? 'yes'
: 'no'
assert_equal('yes', name)
END
***************
*** 82,88 ****

lines =<< trim END
var name = v:false
! ? 'yes'
: 'no'
assert_equal('no', name)
END
--- 82,88 ----

lines =<< trim END
var name = v:false
! ? 'yes'
: 'no'
assert_equal('no', name)
END
***************
*** 90,96 ****

lines =<< trim END
var name = v:false ?
! 'yes' :
'no'
assert_equal('no', name)
END
--- 90,96 ----

lines =<< trim END
var name = v:false ?
! 'yes' :
'no'
assert_equal('no', name)
END
***************
*** 98,104 ****

lines =<< trim END
var name = v:false ? # comment
! 'yes' :
# comment
'no' # comment
assert_equal('no', name)
--- 98,104 ----

lines =<< trim END
var name = v:false ? # comment
! 'yes' :
# comment
'no' # comment
assert_equal('no', name)
***************
*** 317,338 ****
# check line continuation
var lines =<< trim END
var name = 0
! || 1
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = v:false
! || v:true
! || v:false
assert_equal(v:true, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = v:false ||
! v:true ||
v:false
assert_equal(v:true, name)
END
--- 317,338 ----
# check line continuation
var lines =<< trim END
var name = 0
! || 1
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = v:false
! || v:true
! || v:false
assert_equal(v:true, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = v:false ||
! v:true ||
v:false
assert_equal(v:true, name)
END
***************
*** 341,347 ****
lines =<< trim END
var name = v:false || # comment
# comment
! v:true ||
# comment
v:false # comment
assert_equal(v:true, name)
--- 341,347 ----
lines =<< trim END
var name = v:false || # comment
# comment
! v:true ||
# comment
v:false # comment
assert_equal(v:true, name)
***************
*** 456,478 ****
# check line continuation
var lines =<< trim END
var name = 0
! && 1
assert_equal(false, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = v:true
! && v:true
! && v:true
assert_equal(v:true, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = v:true &&
! v:true &&
! v:true
assert_equal(v:true, name)
END
v9.CheckDefAndScriptSuccess(lines)
--- 456,478 ----
# check line continuation
var lines =<< trim END
var name = 0
! && 1
assert_equal(false, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = v:true
! && v:true
! && v:true
assert_equal(v:true, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = v:true &&
! v:true &&
! v:true
assert_equal(v:true, name)
END
v9.CheckDefAndScriptSuccess(lines)
***************
*** 480,488 ****
lines =<< trim END
var name = v:true && # comment
# comment
! v:true &&
# comment
! v:true
assert_equal(v:true, name)
END
v9.CheckDefAndScriptSuccess(lines)
--- 480,488 ----
lines =<< trim END
var name = v:true && # comment
# comment
! v:true &&
# comment
! v:true
assert_equal(v:true, name)
END
v9.CheckDefAndScriptSuccess(lines)
***************
*** 887,893 ****
# variables declared at script level used in a :def function
lines =<< trim END
vim9script
!
var l_decl: list<number>
var l_empty = []
var l_null = null_list
--- 887,893 ----
# variables declared at script level used in a :def function
lines =<< trim END
vim9script
!
var l_decl: list<number>
var l_empty = []
var l_null = null_list
***************
*** 914,920 ****
assert_true(caught)
enddef
TestList()
!
var b_decl: blob
var b_empty = 0z
var b_null = null_blob
--- 914,920 ----
assert_true(caught)
enddef
TestList()
!
var b_decl: blob
var b_empty = 0z
var b_null = null_blob
***************
*** 941,947 ****
assert_true(caught)
enddef
TestBlob()
!
var d_decl: dict<number>
var d_empty = {}
var d_null = null_dict
--- 941,947 ----
assert_true(caught)
enddef
TestBlob()
!
var d_decl: dict<number>
var d_empty = {}
var d_null = null_dict
***************
*** 1274,1280 ****
# check line continuation
var lines =<< trim END
var name = 0
! < 1
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
--- 1274,1280 ----
# check line continuation
var lines =<< trim END
var name = 0
! < 1
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
***************
*** 1282,1295 ****
lines =<< trim END
var name = 123
# comment
! != 123
assert_equal(false, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = 123 ==
! 123
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
--- 1282,1295 ----
lines =<< trim END
var name = 123
# comment
! != 123
assert_equal(false, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = 123 ==
! 123
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
***************
*** 1297,1303 ****
lines =<< trim END
var list = [1, 2, 3]
var name = list
! is list
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
--- 1297,1303 ----
lines =<< trim END
var list = [1, 2, 3]
var name = list
! is list
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
***************
*** 1306,1312 ****
var list = [1, 2, 3]
var name = list # comment
# comment
! is list
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
--- 1306,1312 ----
var list = [1, 2, 3]
var name = list # comment
# comment
! is list
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
***************
*** 1314,1320 ****
lines =<< trim END
var myblob = 0z1234
var name = myblob
! isnot 0z11
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
--- 1314,1320 ----
lines =<< trim END
var myblob = 0z1234
var name = myblob
! isnot 0z11
assert_equal(true, name)
END
v9.CheckDefAndScriptSuccess(lines)
***************
*** 1526,1532 ****
# check line continuation
var lines =<< trim END
var name = 11
! + 77
- 22
assert_equal(66, name)
END
--- 1526,1532 ----
# check line continuation
var lines =<< trim END
var name = 11
! + 77
- 22
assert_equal(66, name)
END
***************
*** 1551,1557 ****

lines =<< trim END
var name = 'one'
! .. 'two'
assert_equal('onetwo', name)
END
v9.CheckDefAndScriptSuccess(lines)
--- 1551,1557 ----

lines =<< trim END
var name = 'one'
! .. 'two'
assert_equal('onetwo', name)
END
v9.CheckDefAndScriptSuccess(lines)
***************
*** 1859,1865 ****
# check line continuation
var lines =<< trim END
var name = 11
! * 22
/ 3
assert_equal(80, name)
END
--- 1859,1865 ----
# check line continuation
var lines =<< trim END
var name = 11
! * 22
/ 3
assert_equal(80, name)
END
***************
*** 1867,1873 ****

lines =<< trim END
var name = 25
! % 10
assert_equal(5, name)
END
v9.CheckDefAndScriptSuccess(lines)
--- 1867,1873 ----

lines =<< trim END
var name = 25
! % 10
assert_equal(5, name)
END
v9.CheckDefAndScriptSuccess(lines)
***************
*** 1877,1890 ****
# comment

# comment
! % 10
assert_equal(5, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = 11 *
! 22 /
3
assert_equal(80, name)
END
--- 1877,1890 ----
# comment

# comment
! % 10
assert_equal(5, name)
END
v9.CheckDefAndScriptSuccess(lines)

lines =<< trim END
var name = 11 *
! 22 /
3
assert_equal(80, name)
END
***************
*** 2775,2781 ****
var dkeys = {['key']: 'string',
[12]: 'numberexpr',
34: 'number',
! [true]: 'bool'}
assert_equal('string', dkeys['key'])
assert_equal('numberexpr', dkeys[12])
assert_equal('number', dkeys[34])
--- 2775,2781 ----
var dkeys = {['key']: 'string',
[12]: 'numberexpr',
34: 'number',
! [true]: 'bool'}
assert_equal('string', dkeys['key'])
assert_equal('numberexpr', dkeys[12])
assert_equal('number', dkeys[34])
***************
*** 2798,2804 ****
assert_equal('dict<list<unknown>>', typename(dl))
END
v9.CheckDefAndScriptSuccess(lines)
!
# legacy syntax doesn't work
v9.CheckDefAndScriptFailure(["var x = #{key: 8}"], 'E1170:', 1)
v9.CheckDefAndScriptFailure(["var x = 'a' #{a: 1}"], 'E1170:', 1)
--- 2798,2804 ----
assert_equal('dict<list<unknown>>', typename(dl))
END
v9.CheckDefAndScriptSuccess(lines)
!
# legacy syntax doesn't work
v9.CheckDefAndScriptFailure(["var x = #{key: 8}"], 'E1170:', 1)
v9.CheckDefAndScriptFailure(["var x = 'a' #{a: 1}"], 'E1170:', 1)
***************
*** 3206,3212 ****
def Test_expr_member_vim9script()
var lines =<< trim END
var d = {one:
! 'one',
two: 'two',
1: 1,
_: 2}
--- 3206,3212 ----
def Test_expr_member_vim9script()
var lines =<< trim END
var d = {one:
! 'one',
two: 'two',
1: 1,
_: 2}
***************
*** 3494,3512 ****
assert_equal('ok', g:LegacyReturn())

lines =<< trim END
! vim9script
! def GetNumber(): number
legacy return notexists
! enddef
echo GetNumber()
END
v9.CheckScriptFailure(lines, 'E121: Undefined variable: notexists')

lines =<< trim END
! vim9script
! def GetNumber(): number
! legacy return range(3)->map('v:val + 1')
! enddef
echo GetNumber()
END
v9.CheckScriptFailure(lines, 'E1012: Type mismatch; expected number but got list<number>')
--- 3494,3512 ----
assert_equal('ok', g:LegacyReturn())

lines =<< trim END
! vim9script
! def GetNumber(): number
legacy return notexists
! enddef
echo GetNumber()
END
v9.CheckScriptFailure(lines, 'E121: Undefined variable: notexists')

lines =<< trim END
! vim9script
! def GetNumber(): number
! legacy return range(3)->map('v:val + 1')
! enddef
echo GetNumber()
END
v9.CheckScriptFailure(lines, 'E1012: Type mismatch; expected number but got list<number>')
***************
*** 3631,3637 ****

var Join = (l) => join(l, 'x')
assert_equal('axb', ['a', 'b']->(Join)())
!
var sorted = [3, 1, 2]
-> sort()
assert_equal([1, 2, 3], sorted)
--- 3631,3637 ----

var Join = (l) => join(l, 'x')
assert_equal('axb', ['a', 'b']->(Join)())
!
var sorted = [3, 1, 2]
-> sort()
assert_equal([1, 2, 3], sorted)
*** ../vim-9.0.1256/src/testdir/test_vim9_func.vim 2023-01-20 18:49:42.763170966 +0000
--- src/testdir/test_vim9_func.vim 2023-01-28 18:42:43.939145443 +0000
***************
*** 607,613 ****
defcompile

func! g:Global(a, b)
! echo a:a a:b
endfunc
Tryit()
END
--- 607,613 ----
defcompile

func! g:Global(a, b)
! echo a:a a:b
endfunc
Tryit()
END
***************
*** 2150,2156 ****
)
# had a double free if the right parenthesis of the nested function is
# on the next line
!
enddef|BBBB
enddef
# Compile all functions
--- 2150,2156 ----
)
# had a double free if the right parenthesis of the nested function is
# on the next line
!
enddef|BBBB
enddef
# Compile all functions
***************
*** 2175,2182 ****
def SecondFunction(J =
# Nois
# one
!
! enddef|BBBB
enddef
# Compile all functions
defcompile
--- 2175,2182 ----
def SecondFunction(J =
# Nois
# one
!
! enddef|BBBB
enddef
# Compile all functions
defcompile
*** ../vim-9.0.1256/src/testdir/test_vim9_import.vim 2022-11-22 18:12:40.833924528 +0000
--- src/testdir/test_vim9_import.vim 2023-01-28 18:43:06.219100889 +0000
***************
*** 2656,2662 ****

import autoload 'toggle.vim'

! nnoremap <silent> <expr> tt toggle.Toggle()
nnoremap <silent> xx <ScriptCmd>toggle.Doit()<CR>
nnoremap <silent> yy <Cmd>toggle.Doit()<CR>
END
--- 2656,2662 ----

import autoload 'toggle.vim'

! nnoremap <silent> <expr> tt toggle.Toggle()
nnoremap <silent> xx <ScriptCmd>toggle.Doit()<CR>
nnoremap <silent> yy <Cmd>toggle.Doit()<CR>
END
*** ../vim-9.0.1256/src/testdir/test_viminfo.vim 2022-10-15 21:35:51.191403811 +0100
--- src/testdir/test_viminfo.vim 2023-01-28 19:12:06.701701542 +0000
***************
*** 301,307 ****
call test_settime(39)
call histadd(':', "echo '39'")
wviminfo Xviminfo
!
call histdel(':')
rviminfo Xviminfo
call assert_equal("echo '39'", histget(':', -1))
--- 301,307 ----
call test_settime(39)
call histadd(':', "echo '39'")
wviminfo Xviminfo
!
call histdel(':')
rviminfo Xviminfo
call assert_equal("echo '39'", histget(':', -1))
***************
*** 560,566 ****
sp Xviminfo
call assert_equal('latin1', &fenc)
close
!
call histdel(':')
rviminfo Xviminfo
call assert_equal("echo 'é'", histget(':', -1))
--- 560,566 ----
sp Xviminfo
call assert_equal('latin1', &fenc)
close
!
call histdel(':')
rviminfo Xviminfo
call assert_equal("echo 'é'", histget(':', -1))
*** ../vim-9.0.1256/src/testdir/test_virtualedit.vim 2023-01-28 16:37:33.898559056 +0000
--- src/testdir/test_virtualedit.vim 2023-01-28 19:12:31.529691648 +0000
***************
*** 585,598 ****
set virtualedit&
endfunc

! " this was replacing the NUL at the end of the line
func Test_virtualedit_replace_after_tab()
new
s/\v/ 0
set ve=all
let @" = ''
sil! norm vPvr0
!
call assert_equal("\t0", getline(1))
set ve&
bwipe!
--- 585,598 ----
set virtualedit&
endfunc

! " this was replacing the NUL at the end of the line
func Test_virtualedit_replace_after_tab()
new
s/\v/ 0
set ve=all
let @" = ''
sil! norm vPvr0
!
call assert_equal("\t0", getline(1))
set ve&
bwipe!
*** ../vim-9.0.1256/src/testdir/test_visual.vim 2023-01-10 17:29:24.916481478 +0000
--- src/testdir/test_visual.vim 2023-01-28 19:13:17.589673503 +0000
***************
*** 1167,1174 ****
func Test_visual_put_in_block_using_zp()
new
" paste using zP
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
! \ '/subdir',
\ '/longsubdir',
\ '/longlongsubdir'])
exe "normal! 5G\<c-v>2j$y"
--- 1167,1174 ----
func Test_visual_put_in_block_using_zp()
new
" paste using zP
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
! \ '/subdir',
\ '/longsubdir',
\ '/longlongsubdir'])
exe "normal! 5G\<c-v>2j$y"
***************
*** 1176,1183 ****
call assert_equal(['/path/subdir;text', '/path/longsubdir;text', '/path/longlongsubdir;text'], getline(1, 3))
%d
" paste using zP
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
! \ '/subdir',
\ '/longsubdir',
\ '/longlongsubdir'])
exe "normal! 5G\<c-v>2j$y"
--- 1176,1183 ----
call assert_equal(['/path/subdir;text', '/path/longsubdir;text', '/path/longlongsubdir;text'], getline(1, 3))
%d
" paste using zP
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
! \ '/subdir',
\ '/longsubdir',
\ '/longlongsubdir'])
exe "normal! 5G\<c-v>2j$y"
***************
*** 1190,1196 ****
new

" Test 1) Paste using zp - after the cursor without trailing spaces
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /subdir columntext',
\ 'texttext /longsubdir columntext',
\ 'texttext /longlongsubdir columntext'])
--- 1190,1196 ----
new

" Test 1) Paste using zp - after the cursor without trailing spaces
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /subdir columntext',
\ 'texttext /longsubdir columntext',
\ 'texttext /longlongsubdir columntext'])
***************
*** 1200,1206 ****

" Test 2) Paste using zP - in front of the cursor without trailing spaces
%d
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /subdir columntext',
\ 'texttext /longsubdir columntext',
\ 'texttext /longlongsubdir columntext'])
--- 1200,1206 ----

" Test 2) Paste using zP - in front of the cursor without trailing spaces
%d
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /subdir columntext',
\ 'texttext /longsubdir columntext',
\ 'texttext /longlongsubdir columntext'])
***************
*** 1210,1216 ****

" Test 3) Paste using p - with trailing spaces
%d
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /subdir columntext',
\ 'texttext /longsubdir columntext',
\ 'texttext /longlongsubdir columntext'])
--- 1210,1216 ----

" Test 3) Paste using p - with trailing spaces
%d
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /subdir columntext',
\ 'texttext /longsubdir columntext',
\ 'texttext /longlongsubdir columntext'])
***************
*** 1220,1226 ****

" Test 4) Paste using P - with trailing spaces
%d
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /subdir columntext',
\ 'texttext /longsubdir columntext',
\ 'texttext /longlongsubdir columntext'])
--- 1220,1226 ----

" Test 4) Paste using P - with trailing spaces
%d
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /subdir columntext',
\ 'texttext /longsubdir columntext',
\ 'texttext /longlongsubdir columntext'])
***************
*** 1230,1236 ****

" Test 5) Yank with spaces inside the block
%d
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /sub dir/ columntext',
\ 'texttext /lon gsubdir/ columntext',
\ 'texttext /lon glongsubdir/ columntext'])
--- 1230,1236 ----

" Test 5) Yank with spaces inside the block
%d
! call setline(1, ['/path;text', '/path;text', '/path;text', '',
\ 'texttext /sub dir/ columntext',
\ 'texttext /lon gsubdir/ columntext',
\ 'texttext /lon glongsubdir/ columntext'])
*** ../vim-9.0.1256/src/testdir/test_winbuf_close.vim 2022-10-15 22:06:02.730483280 +0100
--- src/testdir/test_winbuf_close.vim 2023-01-28 19:15:50.109642342 +0000
***************
*** 219,225 ****
execute "normal \<c-w>b"
let h = winheight(0)
let w = win_getid()
! new
q
call assert_equal(h, winheight(0), "Window height does not match eight before opening and closing another window")
call assert_equal(w, win_getid(), "Did not return to original window after opening and closing a window")
--- 219,225 ----
execute "normal \<c-w>b"
let h = winheight(0)
let w = win_getid()
! new
q
call assert_equal(h, winheight(0), "Window height does not match eight before opening and closing another window")
call assert_equal(w, win_getid(), "Did not return to original window after opening and closing a window")
*** ../vim-9.0.1256/src/testdir/test_xxd.vim 2022-10-15 22:06:02.734483275 +0100
--- src/testdir/test_xxd.vim 2023-01-28 19:16:15.529655699 +0000
***************
*** 232,238 ****
};
unsigned int varName_len = 11;
[CODE]
!
call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
endfor

--- 232,238 ----
};
unsigned int varName_len = 11;
[CODE]
!
call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
endfor

***************
*** 289,295 ****
exe cmd1
exe cmd2
call assert_equal(['00000000: 3a 3a 45 45 3a 3a 3a 3a 46 46 ::EE::::FF'], readfile('Xxxdout'))
!
call writefile(["2: 41 41", "08: 42 42"], 'Xxxdin')
call writefile(['::::::::'], 'Xxxdfile')
exe cmd1
--- 289,295 ----
exe cmd1
exe cmd2
call assert_equal(['00000000: 3a 3a 45 45 3a 3a 3a 3a 46 46 ::EE::::FF'], readfile('Xxxdout'))
!
call writefile(["2: 41 41", "08: 42 42"], 'Xxxdin')
call writefile(['::::::::'], 'Xxxdfile')
exe cmd1
***************
*** 305,311 ****
exe cmd1
exe cmd2
call assert_equal(['00000000: 3a 3a 45 45 3a 3a 3a 3a 42 44 46 46 ::EE::::BDFF'], readfile('Xxxdout'))
!
call delete('Xxxdout')
endfunc

--- 305,311 ----
exe cmd1
exe cmd2
call assert_equal(['00000000: 3a 3a 45 45 3a 3a 3a 3a 42 44 46 46 ::EE::::BDFF'], readfile('Xxxdout'))
!
call delete('Xxxdout')
endfunc

*** ../vim-9.0.1256/src/version.c 2023-01-28 18:05:35.484642913 +0000
--- src/version.c 2023-01-28 19:17:27.413688630 +0000
***************
*** 697,698 ****
--- 697,700 ----
{ /* Add new patch number below this line */
+ /**/
+ 1257,
/**/

--
hundred-and-one symptoms of being an internet addict:
59. Your wife says communication is important in a marriage...so you buy
another computer and install a second phone line so the two of you can
chat.

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages