From 339288377072f66ec88e21903e75a82d23ffbf4f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 18 Aug 2016 21:22:04 +0200 Subject: [PATCH 1/4] patch 7.4.2226 Problem: The field names used by getbufinfo(), gettabinfo() and getwininfo() are not consistent. Solution: Use bufnr, winnr and tabnr. (Yegappan Lakshmanan) --- runtime/doc/eval.txt | 2 +- src/evalfunc.c | 10 +++++----- src/testdir/test_bufwintabinfo.vim | 12 ++++++------ src/version.c | 2 ++ 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 32d8dad52e..01a361dd79 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -4004,6 +4004,7 @@ getbufinfo([{dict}]) Each returned List item is a dictionary with the following entries: + bufnr buffer number. changed TRUE if the buffer is modified. changedtick number of changes made to the buffer. hidden TRUE if the buffer is hidden. @@ -4011,7 +4012,6 @@ getbufinfo([{dict}]) lnum current line number in buffer. loaded TRUE if the buffer is loaded. name full path to the file in the buffer. - nr buffer number. options dictionary of buffer local options. signs list of signs placed in the buffer. Each list item is a dictionary with diff --git a/src/evalfunc.c b/src/evalfunc.c index 53526300df..16e2365def 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -3931,7 +3931,7 @@ get_buffer_info(buf_T *buf) if (dict == NULL) return NULL; - dict_add_nr_str(dict, "nr", buf->b_fnum, NULL); + dict_add_nr_str(dict, "bufnr", buf->b_fnum, NULL); dict_add_nr_str(dict, "name", 0L, buf->b_ffname != NULL ? buf->b_ffname : (char_u *)""); dict_add_nr_str(dict, "lnum", buflist_findlnum(buf), NULL); @@ -5001,7 +5001,7 @@ get_tabpage_info(tabpage_T *tp, int tp_idx) if (dict == NULL) return NULL; - dict_add_nr_str(dict, "nr", tp_idx, NULL); + dict_add_nr_str(dict, "tabnr", tp_idx, NULL); l = list_alloc(); if (l != NULL) @@ -5125,12 +5125,12 @@ get_win_info(win_T *wp, short tpnr, short winnr) if (dict == NULL) return NULL; - dict_add_nr_str(dict, "tpnr", tpnr, NULL); - dict_add_nr_str(dict, "nr", winnr, NULL); + dict_add_nr_str(dict, "tabnr", tpnr, NULL); + dict_add_nr_str(dict, "winnr", winnr, NULL); dict_add_nr_str(dict, "winid", wp->w_id, NULL); dict_add_nr_str(dict, "height", wp->w_height, NULL); dict_add_nr_str(dict, "width", wp->w_width, NULL); - dict_add_nr_str(dict, "bufnum", wp->w_buffer->b_fnum, NULL); + dict_add_nr_str(dict, "bufnr", wp->w_buffer->b_fnum, NULL); #ifdef FEAT_QUICKFIX dict_add_nr_str(dict, "quickfix", bt_quickfix(wp->w_buffer), NULL); diff --git a/src/testdir/test_bufwintabinfo.vim b/src/testdir/test_bufwintabinfo.vim index ec1f538417..1c88cf53af 100644 --- a/src/testdir/test_bufwintabinfo.vim +++ b/src/testdir/test_bufwintabinfo.vim @@ -17,7 +17,7 @@ function Test_getbufwintabinfo() set tabstop&vim let b:editor = 'vim' let l = getbufinfo('%') - call assert_equal(bufnr('%'), l[0].nr) + call assert_equal(bufnr('%'), l[0].bufnr) call assert_equal(8, l[0].options.tabstop) call assert_equal('vim', l[0].variables.editor) call assert_notequal(-1, index(l[0].windows, bufwinid('%'))) @@ -46,25 +46,25 @@ function Test_getbufwintabinfo() tabfirst let winlist = getwininfo() call assert_equal(5, len(winlist)) - call assert_equal(winbufnr(2), winlist[1].bufnum) + call assert_equal(winbufnr(2), winlist[1].bufnr) call assert_equal(winheight(2), winlist[1].height) - call assert_equal(1, winlist[2].nr) + call assert_equal(1, winlist[2].winnr) if has('signs') call assert_equal('auto', winlist[0].options.signcolumn) endif - call assert_equal(2, winlist[3].tpnr) + call assert_equal(2, winlist[3].tabnr) call assert_equal('green', winlist[2].variables.signal) call assert_equal(winwidth(1), winlist[0].width) call assert_equal(w4_id, winlist[3].winid) let winfo = getwininfo(w5_id)[0] - call assert_equal(2, winfo.tpnr) + call assert_equal(2, winfo.tabnr) call assert_equal([], getwininfo(3)) call settabvar(1, 'space', 'build') let tablist = gettabinfo() call assert_equal(2, len(tablist)) call assert_equal(3, len(tablist[1].windows)) - call assert_equal(2, tablist[1].nr) + call assert_equal(2, tablist[1].tabnr) call assert_equal('build', tablist[0].variables.space) call assert_equal(w2_id, tablist[0].windows[0]) call assert_equal([], gettabinfo(3)) diff --git a/src/version.c b/src/version.c index f4a340ee51..efca575e1e 100644 --- a/src/version.c +++ b/src/version.c @@ -763,6 +763,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2226, /**/ 2225, /**/ From 1381d791478ee77c8368b89a3d4954316bf839b5 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 18 Aug 2016 22:11:42 +0200 Subject: [PATCH 2/4] patch 7.4.2227 Problem: Tab page tests are old style. Solution: Change into new style tests. (Hirohito Higashi) --- src/Makefile | 3 +- src/testdir/Make_all.mak | 1 - src/testdir/test62.in | 205 ----------------------------------- src/testdir/test62.ok | 95 ---------------- src/testdir/test_alot.vim | 1 + src/testdir/test_tabpage.vim | 189 ++++++++++++++++++++++++++++++++ src/version.c | 2 + 7 files changed, 194 insertions(+), 302 deletions(-) delete mode 100644 src/testdir/test62.in delete mode 100644 src/testdir/test62.ok create mode 100644 src/testdir/test_tabpage.vim diff --git a/src/Makefile b/src/Makefile index 28b4b20fd0..5d895f1367 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2041,7 +2041,7 @@ test1 \ test30 test31 test32 test33 test34 test36 test37 test38 test39 \ test40 test41 test42 test43 test44 test45 test46 test48 test49 \ test50 test51 test52 test53 test54 test55 test56 test57 test58 test59 \ - test60 test62 test64 test65 test66 test67 test68 test69 \ + test60 test64 test65 test66 test67 test68 test69 \ test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \ test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \ test90 test91 test92 test93 test94 test95 test97 test98 test99 \ @@ -2122,6 +2122,7 @@ test_arglist \ test_syn_attr \ test_syntax \ test_tabline \ + test_tabpage \ test_tagjump \ test_textobjects \ test_timers \ diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak index 2762a398c1..19973d5425 100644 --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -50,7 +50,6 @@ SCRIPTS_ALL = \ test56.out \ test57.out \ test60.out \ - test62.out \ test64.out \ test65.out \ test66.out \ diff --git a/src/testdir/test62.in b/src/testdir/test62.in deleted file mode 100644 index c437f36a86..0000000000 --- a/src/testdir/test62.in +++ /dev/null @@ -1,205 +0,0 @@ -Tests for tab pages - -STARTTEST -:so small.vim -:lang C -:" Simple test for opening and closing a tab page -:tabnew -:let nr = tabpagenr() -:q -:call append(line('$'), 'tab page ' . nr) -:unlet nr -:" -:" Open three tab pages and use ":tabdo" -:0tabnew -:1tabnew -:$tabnew -:tabdo call append(line('$'), 'this is tab page ' . tabpagenr()) -:tabclose! 2 -:tabrewind -:let line1 = getline('$') -:undo -:q -:tablast -:let line2 = getline('$') -:q! -:call append(line('$'), line1) -:call append(line('$'), line2) -:unlet line1 line2 -:" -:" Test for settabvar() and gettabvar() functions. Open a new tab page and -:" set 3 variables to a number, string and a list. Verify that the variables -:" are correctly set. -:tabnew -:tabfirst -:call settabvar(2, 'val_num', 100) -:call settabvar(2, 'val_str', 'SetTabVar test') -:call settabvar(2, 'val_list', ['red', 'blue', 'green']) -:" -:let test_status = 'gettabvar: fail' -:if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'] -: let test_status = 'gettabvar: pass' -:endif -:call append(line('$'), test_status) -:" -:tabnext 2 -:let test_status = 'settabvar: fail' -:if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] -: let test_status = 'settabvar: pass' -:endif -:tabclose -:call append(line('$'), test_status) -:" -:if has('gui') || has('clientserver') -:" Test for ":tab drop exist-file" to keep current window. -:sp test1 -:tab drop test1 -:let test_status = 'tab drop 1: fail' -:if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1 -: let test_status = 'tab drop 1: pass' -:endif -:close -:call append(line('$'), test_status) -:" -:" -:" Test for ":tab drop new-file" to keep current window of tabpage 1. -:split -:tab drop newfile -:let test_status = 'tab drop 2: fail' -:if tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1 -: let test_status = 'tab drop 2: pass' -:endif -:tabclose -:q -:call append(line('$'), test_status) -:" -:" -:" Test for ":tab drop multi-opend-file" to keep current tabpage and window. -:new test1 -:tabnew -:new test1 -:tab drop test1 -:let test_status = 'tab drop 3: fail' -:if tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1 -: let test_status = 'tab drop 3: pass' -:endif -:tabclose -:q -:call append(line('$'), test_status) -:else -:" :drop not supported -:call append(line('$'), 'tab drop 1: pass') -:call append(line('$'), 'tab drop 2: pass') -:call append(line('$'), 'tab drop 3: pass') -:endif -:" -:" -:for i in range(9) | tabnew | endfor -1gt -:$put =tabpagenr() -:tabmove 5 -:$put =tabpagenr() -:.tabmove -:$put =tabpagenr() -:tabmove - -:$put =tabpagenr() -:tabmove + -:$put =tabpagenr() -:tabmove -2 -:$put =tabpagenr() -:tabmove +4 -:$put =tabpagenr() -:tabmove -:$put =tabpagenr() -:tabmove -20 -:$put =tabpagenr() -:tabmove +20 -:$put =tabpagenr() -:0tabmove -:$put =tabpagenr() -:$tabmove -:$put =tabpagenr() -:tabmove 0 -:$put =tabpagenr() -:tabmove $ -:$put =tabpagenr() -:3tabmove -:$put =tabpagenr() -:7tabmove 5 -:$put =tabpagenr() -:let a='No error caught.' -:try -:tabmove foo -:catch E474 -:let a='E474 caught.' -:endtry -:$put =a -:" -:" Test autocommands -:tabonly! -:let g:r=[] -:command -nargs=1 -bar C :call add(g:r, '=== ' . . ' ===')| -:function Test() - let hasau=has('autocmd') - if hasau - autocmd TabEnter * :call add(g:r, 'TabEnter') - autocmd WinEnter * :call add(g:r, 'WinEnter') - autocmd BufEnter * :call add(g:r, 'BufEnter') - autocmd TabLeave * :call add(g:r, 'TabLeave') - autocmd WinLeave * :call add(g:r, 'WinLeave') - autocmd BufLeave * :call add(g:r, 'BufLeave') - endif - let t:a='a' - C tab split - if !hasau - let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter'] - endif - let t:a='b' - C tabnew - if !hasau - let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'] - endif - let t:a='c' - call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")'))) - C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') - call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")'))) - let w:a='a' - C vsplit - if !hasau - let g:r+=['WinLeave', 'WinEnter'] - endif - let w:a='a' - let tabn=tabpagenr() - let winr=range(1, winnr('$')) - C tabnext 1 - if !hasau - let g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'] - endif - call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")'))) - C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') - call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")'))) - if hasau - augroup TabDestructive - autocmd TabEnter * :C tabnext 2 | C tabclose 3 - augroup END - C tabnext 3 - let g:r+=[tabpagenr().'/'.tabpagenr('$')] - autocmd! TabDestructive TabEnter - C tabnew - C tabnext 1 - autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3 - C tabnext 3 - let g:r+=[tabpagenr().'/'.tabpagenr('$')] - else - let g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",] - endif -endfunction -:call Test() -:$ put =g:r -:" -:" -:/^Results/,$w! test.out -:qa! -ENDTEST - -Results: diff --git a/src/testdir/test62.ok b/src/testdir/test62.ok deleted file mode 100644 index a0115bf6cd..0000000000 --- a/src/testdir/test62.ok +++ /dev/null @@ -1,95 +0,0 @@ -Results: -tab page 2 -this is tab page 3 -this is tab page 1 -this is tab page 4 -gettabvar: pass -settabvar: pass -tab drop 1: pass -tab drop 2: pass -tab drop 3: pass -1 -5 -5 -4 -5 -3 -7 -10 -1 -10 -1 -10 -1 -10 -4 -5 -E474 caught. -=== tab split === -WinLeave -TabLeave -WinEnter -TabEnter -=== tabnew === -WinLeave -TabLeave -WinEnter -TabEnter -BufLeave -BufEnter -a b c -=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') === -2 4 6 -=== vsplit === -WinLeave -WinEnter -=== tabnext 1 === -BufLeave -WinLeave -TabLeave -WinEnter -TabEnter -BufEnter -a a -=== call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') === -2 4 -=== tabnext 3 === -BufLeave -WinLeave -TabLeave -WinEnter -TabEnter -=== tabnext 2 === -=== tabclose 3 === -2/2 -=== tabnew === -WinLeave -TabLeave -WinEnter -TabEnter -BufLeave -BufEnter -=== tabnext 1 === -BufLeave -WinLeave -TabLeave -WinEnter -TabEnter -BufEnter -=== tabnext 3 === -BufLeave -WinLeave -TabLeave -WinEnter -TabEnter -=== tabnext 2 === -BufLeave -WinLeave -TabLeave -WinEnter -TabEnter -=== tabnext 2 === -=== tabclose 3 === -BufEnter -=== tabclose 3 === -2/2 diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim index 442ba2e4f5..daf5b0ad04 100644 --- a/src/testdir/test_alot.vim +++ b/src/testdir/test_alot.vim @@ -34,6 +34,7 @@ source test_sort.vim source test_statusline.vim source test_syn_attr.vim source test_tabline.vim +source test_tabpage.vim source test_tagjump.vim source test_timers.vim source test_true_false.vim diff --git a/src/testdir/test_tabpage.vim b/src/testdir/test_tabpage.vim new file mode 100644 index 0000000000..e6b85d6e14 --- /dev/null +++ b/src/testdir/test_tabpage.vim @@ -0,0 +1,189 @@ +" Tests for tabpage + +function Test_tabpage() + bw! + " Simple test for opening and closing a tab page + tabnew + call assert_equal(2, tabpagenr()) + quit + + " Open three tab pages and use ":tabdo" + 0tabnew + 1tabnew + $tabnew + tabdo call append(line('$'), tabpagenr()) + tabclose! 2 + tabrewind + let line1 = getline('$') + undo + q + tablast + let line2 = getline('$') + q! + call append(line('$'), line1) + call append(line('$'), line2) + unlet line1 line2 + call assert_equal(['', '3', '1', '4'], getline(1, '$')) + " + " Test for settabvar() and gettabvar() functions. Open a new tab page and + " set 3 variables to a number, string and a list. Verify that the variables + " are correctly set. + tabnew + tabfirst + call settabvar(2, 'val_num', 100) + call settabvar(2, 'val_str', 'SetTabVar test') + call settabvar(2, 'val_list', ['red', 'blue', 'green']) + " + call assert_true(gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) + + tabnext 2 + call assert_true(t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green']) + tabclose + + if has('gui') || has('clientserver') + " Test for ":tab drop exist-file" to keep current window. + sp test1 + tab drop test1 + call assert_true(tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1) + close + " + " + " Test for ":tab drop new-file" to keep current window of tabpage 1. + split + tab drop newfile + call assert_true(tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1) + tabclose + q + " + " + " Test for ":tab drop multi-opend-file" to keep current tabpage and window. + new test1 + tabnew + new test1 + tab drop test1 + call assert_true(tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1) + tabclose + q + endif + " + " + for i in range(9) | tabnew | endfor + normal! 1gt + call assert_equal(1, tabpagenr()) + tabmove 5 + call assert_equal(5, tabpagenr()) + .tabmove + call assert_equal(5, tabpagenr()) + tabmove - + call assert_equal(4, tabpagenr()) + tabmove + + call assert_equal(5, tabpagenr()) + tabmove -2 + call assert_equal(3, tabpagenr()) + tabmove +4 + call assert_equal(7, tabpagenr()) + tabmove + call assert_equal(10, tabpagenr()) + tabmove -20 + call assert_equal(1, tabpagenr()) + tabmove +20 + call assert_equal(10, tabpagenr()) + 0tabmove + call assert_equal(1, tabpagenr()) + $tabmove + call assert_equal(10, tabpagenr()) + tabmove 0 + call assert_equal(1, tabpagenr()) + tabmove $ + call assert_equal(10, tabpagenr()) + 3tabmove + call assert_equal(4, tabpagenr()) + 7tabmove 5 + call assert_equal(5, tabpagenr()) + call assert_fails("tabmove foo", 'E474:') +endfunc + +" Test autocommands +function Test_tabpage_with_autocmd() + if !has('autocmd') + return + endif + tabonly! + command -nargs=1 -bar C :call add(s:li, '=== ' . . ' ===')| + augroup TestTabpageGroup + au! + autocmd TabEnter * call add(s:li, 'TabEnter') + autocmd WinEnter * call add(s:li, 'WinEnter') + autocmd BufEnter * call add(s:li, 'BufEnter') + autocmd TabLeave * call add(s:li, 'TabLeave') + autocmd WinLeave * call add(s:li, 'WinLeave') + autocmd BufLeave * call add(s:li, 'BufLeave') + augroup END + + let s:li = [] + let t:a='a' + C tab split + call assert_equal(['=== tab split ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter'], s:li) + let s:li = [] + let t:a='b' + C tabnew + call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li) + let t:a='c' + let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+') + call assert_equal(['a', 'b', 'c'], s:li) + + let s:li = [] + C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') + call assert_equal(["=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') ==="], s:li) + let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')) , '\s\+') + call assert_equal(['2', '4', '6'], s:li) + + let s:li = [] + let w:a='a' + C vsplit + call assert_equal(['=== vsplit ===', 'WinLeave', 'WinEnter'], s:li) + let s:li = [] + let w:a='a' + let tabn=tabpagenr() + let winr=range(1, winnr('$')) + C tabnext 1 + call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li) + let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+') + call assert_equal(['a', 'a'], s:li) + let s:li = [] + C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') + let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+') + call assert_equal(['2', '4'], s:li) + + augroup TabDestructive + autocmd TabEnter * :C tabnext 2 | C tabclose 3 + augroup END + let s:li = [] + C tabnext 3 + call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ==='], s:li) + call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')]) + + autocmd! TabDestructive TabEnter + let s:li = [] + C tabnew + call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter'], s:li) + let s:li = [] + C tabnext 1 + call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'], s:li) + + autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3 + let s:li = [] + C tabnext 3 + call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', 'BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ===', 'BufEnter', '=== tabclose 3 ==='], s:li) + call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')]) + + delcommand C + autocmd! TabDestructive + augroup! TabDestructive + autocmd! TestTabpageGroup + augroup! TestTabpageGroup + tabonly! + bw! +endfunction + +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index efca575e1e..06aeb290eb 100644 --- a/src/version.c +++ b/src/version.c @@ -763,6 +763,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2227, /**/ 2226, /**/ From 7571d55f7dcc009a375b2124cce2c8b21f361234 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 18 Aug 2016 22:54:46 +0200 Subject: [PATCH 3/4] Updated runtime files. --- runtime/doc/eval.txt | 75 ++-- runtime/doc/sign.txt | 8 +- runtime/doc/tags | 5 + runtime/doc/todo.txt | 24 +- runtime/doc/version8.txt | 607 +-------------------------- runtime/doc/windows.txt | 4 +- runtime/filetype.vim | 5 +- runtime/indent/teraterm.vim | 10 +- runtime/keymap/russian-jcukenmac.vim | 94 +++++ runtime/syntax/rst.vim | 14 +- runtime/syntax/teraterm.vim | 6 +- 11 files changed, 178 insertions(+), 674 deletions(-) create mode 100644 runtime/keymap/russian-jcukenmac.vim diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 01a361dd79..69fa6e89b7 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.4. Last change: 2016 Aug 16 +*eval.txt* For Vim version 7.4. Last change: 2016 Aug 18 VIM REFERENCE MANUAL by Bram Moolenaar @@ -43,7 +43,7 @@ There are nine types of variables: Number A 32 or 64 bit signed number. |expr-number| *Number* 64-bit Numbers are available only when compiled with the |+num64| feature. - Examples: -123 0x10 0177 + Examples: -123 0x10 0177 0b1011 Float A floating point number. |floating-point-format| *Float* {only when compiled with the |+float| feature} @@ -1038,9 +1038,10 @@ When expr8 is a |Funcref| type variable, invoke the function it refers to. number ------ number number constant *expr-number* - *hex-number* *octal-number* + *hex-number* *octal-number* *binary-number* -Decimal, Hexadecimal (starting with 0x or 0X), or Octal (starting with 0). +Decimal, Hexadecimal (starting with 0x or 0X), Binary (starting with 0b or 0B) +and Octal (starting with 0). *floating-point-format* Floating point numbers can be written in two forms: @@ -1446,8 +1447,8 @@ v:beval_winnr The number of the window, over which the mouse pointer is. Only window gets a number). *v:beval_winid* *beval_winid-variable* -v:beval_winid The window ID of the window, over which the mouse pointer is. - Otherwise like v:beval_winnr. +v:beval_winid The |window-ID| of the window, over which the mouse pointer + is. Otherwise like v:beval_winnr. *v:char* *char-variable* v:char Argument for evaluating 'formatexpr' and used for the typed @@ -1945,7 +1946,8 @@ v:windowid When any X11 based GUI is running or when running in a When an MS-Windows GUI is running this will be set to the window handle. Otherwise the value is zero. - Note: for windows inside Vim use |winnr()| or |win_getid()|. + Note: for windows inside Vim use |winnr()| or |win_getid()|, + see |window-ID|. ============================================================================== 4. Builtin Functions *functions* @@ -2462,7 +2464,7 @@ arglistid([{winnr} [, {tabnr}]]) With {winnr} only use this window in the current tab page. With {winnr} and {tabnr} use the window in the specified tab page. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. *argv()* argv([{nr}]) The result is the {nr}th file in the argument list of the @@ -2708,7 +2710,7 @@ bufnr({expr} [, {create}]) Obsolete name for bufnr("$"): last_buffer_nr(). bufwinid({expr}) *bufwinid()* - The result is a Number, which is the window ID of the first + The result is a Number, which is the |window-ID| of the first window associated with buffer {expr}. For the use of {expr}, see |bufname()| above. If buffer {expr} doesn't exist or there is no such window, -1 is returned. Example: > @@ -3116,7 +3118,7 @@ ch_setoptions({handle}, {options}) *ch_setoptions()* lost. These options cannot be changed: - "waittime" only applies to "ch_open()| + "waittime" only applies to |ch_open()| ch_status({handle}) *ch_status()* Return the status of {handle}: @@ -4020,7 +4022,7 @@ getbufinfo([{dict}]) lnum line number name sign name variables dictionary of buffer local variables. - windows list of window IDs with this buffer + windows list of |window-ID|s with this buffer Examples: > for buf in getbufinfo() @@ -4283,7 +4285,7 @@ getcwd([{winnr} [, {tabnr}]]) in the current tab page. With {winnr} and {tabnr} return the local current directory of the window in the specified tab page. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. Return an empty string if the arguments are invalid. getfsize({fname}) *getfsize()* @@ -4380,7 +4382,7 @@ getline({lnum} [, {end}]) getloclist({nr}[, {what}]) *getloclist()* Returns a list with all the entries in the location list for - window {nr}. {nr} can be the window number or the window ID. + window {nr}. {nr} can be the window number or the |window-ID|. When {nr} is zero the current window is used. For a location list window, the displayed location list is @@ -4456,7 +4458,7 @@ getqflist([{what}]) *getqflist()* type type of the error, 'E', '1', etc. valid |TRUE|: recognized error message - When there is no error list or it's empty an empty list is + When there is no error list or it's empty, an empty list is returned. Quickfix list entries with non-existing buffer number are returned with "bufnr" set to zero. @@ -4471,8 +4473,8 @@ getqflist([{what}]) *getqflist()* returns only the items listed in {what} as a dictionary. The following string items are supported in {what}: nr get information for this quickfix list - title get list title - winid get window id (if opened) + title get the list title + winid get the |window-ID| (if opened) all all of the above quickfix properties Non-string items in {what} are ignored. If "nr" is not present then the current quickfix list is used. @@ -4482,7 +4484,7 @@ getqflist([{what}]) *getqflist()* The returned dictionary contains the following entries: nr quickfix list number title quickfix list title text - winid quickfix window id (if opened) + winid quickfix |window-ID| (if opened) Examples: > :echo getqflist({'all': 1}) @@ -4529,9 +4531,9 @@ gettabinfo([{arg}]) *gettabinfo()* empty List is returned. Each List item is a Dictionary with the following entries: - nr tab page number. + tabnr tab page number. variables dictionary of tabpage local variables. - windows List of window IDs in the tag page. + windows List of |window-ID|s in the tag page. gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()* Get the value of a tab-local variable {varname} in tab page @@ -4553,7 +4555,7 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()* Note that {varname} must be the name without "w:". Tabs are numbered starting with one. For the current tabpage use |getwinvar()|. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. When {winnr} is zero the current window is used. This also works for a global option, buffer-local option and window-local option, but it doesn't work for a global variable @@ -4581,22 +4583,22 @@ getwininfo([{winid}]) *getwininfo()* is returned. If the window does not exist the result is an empty list. - Without an information about all the windows in all the tab - pages is returned. + Without {winid} information about all the windows in all the + tab pages is returned. Each List item is a Dictionary with the following entries: - bufnum number of buffer in the window + bufnr number of buffer in the window height window height loclist 1 if showing a location list {only with the +quickfix feature} - nr window number options dictionary of window local options quickfix 1 if quickfix or location list window {only with the +quickfix feature} - tpnr tab page number + tabnr tab page number variables dictionary of window local variables width window width - winid window ID + winid |window-ID| + winnr window number getwinvar({winnr}, {varname} [, {def}]) *getwinvar()* Like |gettabwinvar()| for the current tabpage. @@ -4704,7 +4706,7 @@ haslocaldir([{winnr} [, {tabnr}]]) *haslocaldir()* With {winnr} use this window in the current tab page. With {winnr} and {tabnr} use the window in the specified tab page. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. Return 0 if the arguments are invalid. hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()* @@ -5994,6 +5996,9 @@ printf({fmt}, {expr1} ...) *printf()* s The text of the String argument is used. If a precision is specified, no more bytes than the number specified are used. + If the argument is not a String type, it is + automatically converted to text with the same format + as ":echo". *printf-S* S The text of the String argument is used. If a precision is specified, no more display cells than the @@ -6671,7 +6676,7 @@ setline({lnum}, {text}) *setline()* setloclist({nr}, {list}[, {action}[, {what}]]) *setloclist()* Create or replace or add to the location list for window {nr}. - {nr} can be the window number or the window ID. + {nr} can be the window number or the |window-ID|. When {nr} is zero the current window is used. For a location list window, the displayed location list is @@ -6859,7 +6864,7 @@ settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()* {val}. Tabs are numbered starting with one. For the current tabpage use |setwinvar()|. - {winnr} can be the window number or the window ID. + {winnr} can be the window number or the |window-ID|. When {winnr} is zero the current window is used. This also works for a global or local buffer option, but it doesn't work for a global or local buffer variable. @@ -7967,11 +7972,11 @@ wildmenumode() *wildmenumode()* win_findbuf({bufnr}) *win_findbuf()* - Returns a list with window IDs for windows that contain buffer - {bufnr}. When there is none the list is empty. + Returns a list with |window-ID|s for windows that contain + buffer {bufnr}. When there is none the list is empty. win_getid([{win} [, {tab}]]) *win_getid()* - Get the window ID for the specified window. + Get the |window-ID| for the specified window. When {win} is missing use the current window. With {win} this is the window number. The top window has number 1. @@ -7996,7 +8001,7 @@ win_id2win({expr}) *win_id2win()* *winbufnr()* winbufnr({nr}) The result is a Number, which is the number of the buffer associated with window {nr}. {nr} can be the window number or - the window ID. + the |window-ID|. When {nr} is zero, the number of the buffer in the current window is returned. When window {nr} doesn't exist, -1 is returned. @@ -8010,7 +8015,7 @@ wincol() The result is a Number, which is the virtual column of the winheight({nr}) *winheight()* The result is a Number, which is the height of window {nr}. - {nr} can be the window number or the window ID. + {nr} can be the window number or the |window-ID|. When {nr} is zero, the height of the current window is returned. When window {nr} doesn't exist, -1 is returned. An existing window always has a height of zero or more. @@ -8090,7 +8095,7 @@ winsaveview() Returns a |Dictionary| that contains information to restore winwidth({nr}) *winwidth()* The result is a Number, which is the width of window {nr}. - {nr} can be the window number or the window ID. + {nr} can be the window number or the |window-ID|. When {nr} is zero, the width of the current window is returned. When window {nr} doesn't exist, -1 is returned. An existing window always has a width of zero or more. diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt index fcc6435b37..66063f1c16 100644 --- a/runtime/doc/sign.txt +++ b/runtime/doc/sign.txt @@ -1,4 +1,4 @@ -*sign.txt* For Vim version 7.4. Last change: 2016 Aug 12 +*sign.txt* For Vim version 7.4. Last change: 2016 Aug 17 VIM REFERENCE MANUAL by Gordon Prieur @@ -197,7 +197,9 @@ JUMPING TO A SIGN *:sign-jump* *E157* If the file isn't displayed in window and the current file can not be |abandon|ed this fails. -:sign jump {id} buffer={nr} - Same, but use buffer {nr}. +:sign jump {id} buffer={nr} *E934* + Same, but use buffer {nr}. This fails if buffer {nr} does not + have a name. + vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/tags b/runtime/doc/tags index 76d39b1d9b..b000d32c11 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -4474,6 +4474,7 @@ E930 eval.txt /*E930* E931 message.txt /*E931* E932 eval.txt /*E932* E933 eval.txt /*E933* +E934 sign.txt /*E934* E94 windows.txt /*E94* E95 message.txt /*E95* E96 diff.txt /*E96* @@ -5069,6 +5070,7 @@ beval_lnum-variable eval.txt /*beval_lnum-variable* beval_text-variable eval.txt /*beval_text-variable* beval_winid-variable eval.txt /*beval_winid-variable* beval_winnr-variable eval.txt /*beval_winnr-variable* +binary-number eval.txt /*binary-number* bitwise-function usr_41.txt /*bitwise-function* blockwise-examples visual.txt /*blockwise-examples* blockwise-operators visual.txt /*blockwise-operators* @@ -7793,10 +7795,12 @@ print-options print.txt /*print-options* print.txt print.txt /*print.txt* printf() eval.txt /*printf()* printf-% eval.txt /*printf-%* +printf-B eval.txt /*printf-B* printf-E eval.txt /*printf-E* printf-G eval.txt /*printf-G* printf-S eval.txt /*printf-S* printf-X eval.txt /*printf-X* +printf-b eval.txt /*printf-b* printf-c eval.txt /*printf-c* printf-d eval.txt /*printf-d* printf-e eval.txt /*printf-e* @@ -9202,6 +9206,7 @@ win_id2win() eval.txt /*win_id2win()* winbufnr() eval.txt /*winbufnr()* wincol() eval.txt /*wincol()* window windows.txt /*window* +window-ID windows.txt /*window-ID* window-contents intro.txt /*window-contents* window-exit editing.txt /*window-exit* window-functions usr_41.txt /*window-functions* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 23bd4e7dfe..53e8b7e762 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.4. Last change: 2016 Aug 16 +*todo.txt* For Vim version 7.4. Last change: 2016 Aug 18 VIM REFERENCE MANUAL by Bram Moolenaar @@ -34,7 +34,11 @@ not be repeated below, unless there is extra information. *known-bugs* -------------------- Known bugs and current work ----------------------- +Rename 'langnoremap' to 'langremap' and invert the value? + +channel: +- Check that raw mode does NL-NUL conversion. +- Implement |job-term| ? - Channel test fails with Motif. Sometimes kills the X11 server. - When a message in the queue but there is no callback, drop it after a while? Add timestamp to queued messages and callbacks with ID, remove after a @@ -99,12 +103,17 @@ Regexp problems: - Search for /\%d0\+ causes error E363 in a file with consecutive NUL characters. (Christian Brabandt, 2016 Jun 7) +getbufinfo() may return a lot of data. Select what to return? + remove variables, does that help? + json_encode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23) What if there is an invalid character? Should json_encode()/json_decode() restrict recursiveness? Or avoid recursiveness. +Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17) + Once .exe with updated installer is available: Add remark to download page about /S and /D options (Ken Takata, 2016 Apr 13) Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases @@ -133,6 +142,8 @@ Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807) Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18) +cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983) + Syntax highlighting for messages with RFC3339 timestamp (#946) Did maintainer reply? @@ -146,27 +157,16 @@ Jul 25, #948) 'hlsearch' interferes with a Conceal match. (Rom Grk, 2016 Aug 9) -'s$^$\=capture("s/^//gn")' locks Vim in sandbox mode (#950) -Patch by Christian Brabandt, 2016 Jul 27. - MS-Windows: use WS_HIDE instead of SW_SHOWMINNOACTIVE in os_win32.c? Otherwise task flickers in taskbar. Should make ":@r" handle line continuation. (Cesar Romani, 2016 Jun 26) Also for ":@.". -Patch to make printf() convert to string for %s items. (Ken Takata, 2016 Aug -1) - -Patch to add %b to printf(). (Ozaki Kiichi, 2016 Aug 5) - Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925) Patch on issue #728 by Christian Brabandt, 2016 Apr 7. Update with test: Apr 8. Explanation Apr 12. -Might be related to: -Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not -handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10) Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5) diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt index b9e6f8b346..1be8b831be 100644 --- a/runtime/doc/version8.txt +++ b/runtime/doc/version8.txt @@ -1,4 +1,4 @@ -*version8.txt* For Vim version 8.0. Last change: 2016 Aug 16 +*version8.txt* For Vim version 8.0. Last change: 2016 Aug 18 VIM REFERENCE MANUAL by Bram Moolenaar @@ -318,7 +318,6 @@ New and extended functions: ~ New Vim variables: ~ -|v:vim_did_enter| Set when VimEnter autocommands are triggered |v:beval_winid| Window ID of the window where the mouse pointer is |v:completed_item| complete items for the most recently completed word |v:errors| errors found by assert functions @@ -343,7 +342,7 @@ New Vim variables: ~ |v:t_string| value of String type |v:testing| must be set before using `test_garbagecollect_now()` |v:true| a Number with value one -|v:vim_did_enter| zero until most of startup is done +|v:vim_did_enter| set just before VimEnter autocommands are triggered New autocommand events: ~ @@ -12668,605 +12667,7 @@ Solution: Use vim_strcat() instead of strcat(). Files: src/quickfix.c Patch 7.4.2065 -Problem: Compiler warns for uninitialzed variable. (John Marriott) -Solution: Set lnum to the right value. -Files: src/evalfunc.c - -Patch 7.4.2066 -Problem: getcompletion() not well tested. -Solution: Add more testing. -Files: src/testdir/test_cmdline.vim - -Patch 7.4.2067 -Problem: Compiler warning for char/char_u conversion. (Tony Mechelynck) - Inefficient code. -Solution: Use more lines to fill with spaces. (Nikolai Pavlov) Add type cast. -Files: src/quickfix.c - -Patch 7.4.2068 -Problem: Not all arguments of trunc_string() are tested. Memory access - error when running the message tests. -Solution: Add another test case. (Yegappan Lakshmanan) Make it easy to run - unittests with valgrind. Fix the access error. -Files: src/message.c, src/message_test.c, src/Makefile - -Patch 7.4.2069 -Problem: spell.c is too big. -Solution: Split it in spell file handling and spell checking. -Files: src/spell.c, src/spellfile.c, src/spell.h, src/Makefile, - src/proto/spell.pro, src/proto/spellfile.pro, src/proto.h - Filelist, src/Make_bc5.mak, src/Make_cyg_ming.mak, - src/Make_dice.mak, src/Make_ivc.mak, src/Make_manx.mak, - src/Make_morph.mak, src/Make_mvc.mak, src/Make_sas.mak - -Patch 7.4.2070 (after 7.4.2069) -Problem: Missing change to include file. -Solution: Include the spell header file. -Files: src/vim.h - -Patch 7.4.2071 -Problem: The return value of type() is difficult to use. -Solution: Define v:t_ constants. (Ken Takata) -Files: runtime/doc/eval.txt, src/eval.c, src/evalfunc.c, - src/testdir/test_channel.vim, src/testdir/test_viml.vim, src/vim.h - -Patch 7.4.2072 -Problem: substitute() does not support a Funcref argument. -Solution: Support a Funcref like it supports a string starting with "\=". -Files: src/evalfunc.c, src/regexp.c, src/eval.c, src/proto/eval.pro, - src/proto/regexp.pro, src/testdir/test_expr.vim - -Patch 7.4.2073 -Problem: rgb.txt is read for every color name. -Solution: Load rgb.txt once. (Christian Brabandt) Add a test. -Files: runtime/rgb.txt, src/term.c, src/testdir/test_syn_attr.vim - -Patch 7.4.2074 -Problem: One more place using a dummy variable. -Solution: Use offsetof(). (Ken Takata) -Files: src/userfunc.c - -Patch 7.4.2075 -Problem: No autocommand event to initialize a window or tab page. -Solution: Add WinNew and TabNew events. (partly by Felipe Morales) -Files: src/fileio.c, src/window.c, src/vim.h, - src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt - -Patch 7.4.2076 -Problem: Syntax error when dict has '>' key. -Solution: Check for endchar. (Ken Takata) -Files: src/userfunc.c, src/testdir/test_lambda.vim - -Patch 7.4.2077 -Problem: Cannot update 'tabline' when a tab was closed. -Solution: Add the TabClosed autocmd event. (partly by Felipe Morales) -Files: src/fileio.c, src/window.c, src/vim.h, - src/testdir/test_autocmd.vim, runtime/doc/autocmd.txt - -Patch 7.4.2078 -Problem: Running checks in po directory fails. -Solution: Add colors used in syntax.c to the builtin color table. -Files: src/term.c - -Patch 7.4.2079 -Problem: Netbeans test fails on non-Unix systems. -Solution: Only do the permission check on Unix systems. -Files: src/testdir/test_netbeans.vim - -Patch 7.4.2080 -Problem: When using PERROR() on some systems assert_fails() does not see - the error. -Solution: Make PERROR() always report the error. -Files: src/vim.h, src/message.c, src/proto/message.pro - -Patch 7.4.2081 -Problem: Line numbers in the error list are not always adjusted. -Solution: Set b_has_qf_entry properly. (Yegappan Lakshmanan) -Files: src/quickfix.c, src/structs.h, src/testdir/test_quickfix.vim - -Patch 7.4.2082 -Problem: Not much test coverage for digraphs. -Solution: Add a new style digraph test. (Christian Brabandt) -Files: src/Makefile, src/testdir/test_alot.vim, - src/testdir/test_digraph.vim - -Patch 7.4.2083 -Problem: Coverity complains about not restoring a value. -Solution: Restore the value, although it's not really needed. Change return - to jump to cleanup, might leak memory. -Files: src/userfunc.c - -Patch 7.4.2084 -Problem: New digraph test makes testing hang. -Solution: Don't set "nocp". -Files: src/testdir/test_digraph.vim - -Patch 7.4.2085 -Problem: Digraph tests fails on some systems. -Solution: Run it separately and set 'encoding' early. -Files: src/testdir/Make_all.mak, src/testdir/test_alot.vim, - src/testdir/test_digraph.vim - -Patch 7.4.2086 -Problem: Using the system default encoding makes tests unpredictable. -Solution: Always use utf-8 or latin1 in the new style tests. Remove setting - encoding and scriptencoding where it is not needed. -Files: src/testdir/runtest.vim, src/testdir/test_channel.vim, - src/testdir/test_digraph.vim, src/testdir/test_expand_dllpath.vim, - src/testdir/test_expr_utf8.vim, src/testdir/test_json.vim, - src/testdir/test_matchadd_conceal_utf8.vim, - src/testdir/test_regexp_utf8.vim, src/testdir/test_visual.vim, - src/testdir/test_alot_utf8.vim, - -Patch 7.4.2087 -Problem: Digraph code test coverage is still low. -Solution: Add more tests. (Christian Brabandt) -Files: src/testdir/test_digraph.vim - -Patch 7.4.2088 (after 7.4.2087) -Problem: Keymap test fails with normal features. -Solution: Bail out if the keymap feature is not supported. -Files: src/testdir/test_digraph.vim - -Patch 7.4.2089 -Problem: Color handling of X11 GUIs is too complicated. -Solution: Simplify the code. Use RGBA where appropriate. (Kazunobu - Kuriyama) -Files: src/gui.h, src/gui_beval.c, src/gui_gtk_x11.c, src/netbeans.c - -Patch 7.4.2090 -Problem: Using submatch() in a lambda passed to substitute() is verbose. -Solution: Use a static list and pass it as an optional argument to the - function. Fix memory leak. -Files: src/structs.h, src/list.c, src/userfunc.c, src/channel.c, - src/eval.c, src/evalfunc.c, src/ex_cmds2.c, src/regexp.c, - src/proto/list.pro, src/proto/userfunc.pro, - src/testdir/test_expr.vim, runtime/doc/eval.txt - -Patch 7.4.2091 -Problem: Coverity reports a resource leak when out of memory. -Solution: Close the file before returning. -Files: src/term.c - -Patch 7.4.2092 -Problem: GTK 3 build fails with older GTK version. -Solution: Check the pango version. (Kazunobu Kuriyama) -Files: src/gui_beval.c - -Patch 7.4.2093 -Problem: Netbeans test fails once in a while. Leaving log file behind. -Solution: Add it to the list of flaky tests. Disable logfile. -Files: src/testdir/runtest.vim, src/testdir/test_channel.vim - -Patch 7.4.2094 -Problem: The color allocation in X11 is overly complicated. -Solution: Remove find_closest_color(), XAllocColor() already does this. - (Kazunobu Kuriyama) -Files: src/gui_x11.c - -Patch 7.4.2095 -Problem: Man test fails when run with the GUI. -Solution: Adjust for different behavior of GUI. Add assert_inrange(). -Files: src/eval.c, src/evalfunc.c, src/proto/eval.pro, - src/testdir/test_assert.vim, src/testdir/test_man.vim, - runtime/doc/eval.txt - -Patch 7.4.2096 -Problem: Lambda functions show up with completion. -Solution: Don't show lambda functions. (Ken Takata) -Files: src/userfunc.c, src/testdir/test_cmdline.vim - -Patch 7.4.2097 -Problem: Warning from 64 bit compiler. -Solution: use size_t instead of int. (Mike Williams) -Files: src/message.c - -Patch 7.4.2098 -Problem: Text object tests are old style. -Solution: Turn them into new style tests. (James McCoy, closes #941) -Files: src/testdir/Make_all.mak, src/testdir/test_textobjects.in, - src/testdir/test_textobjects.ok, src/testdir/test_textobjects.vim, - src/Makefile - -Patch 7.4.2099 -Problem: When a keymap is active only "(lang)" is displayed. (Ilya - Dogolazky) -Solution: Show the keymap name. (Dmitri Vereshchagin, closes #933) -Files: src/buffer.c, src/proto/screen.pro, src/screen.c - -Patch 7.4.2100 -Problem: "cgn" and "dgn" do not work correctly with a single character - match and the replacement includes the searched pattern. (John - Beckett) -Solution: If the match is found in the wrong column try in the next column. - Turn the test into new style. (Christian Brabandt) -Files: src/search.c, src/testdir/Make_all.mak, src/Makefile, - src/testdir/test53.in, src/testdir/test53.ok, - src/testdir/test_gn.vim - -Patch 7.4.2101 -Problem: Looping over windows, buffers and tab pages is inconsistent. -Solution: Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan) -Files: src/buffer.c, src/diff.c, src/edit.c, src/eval.c, src/evalfunc.c, - src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/fileio.c, - src/globals.h, src/gui.c, src/gui_mac.c, src/if_lua.c, - src/if_mzsch.c, src/if_perl.xs, src/if_ruby.c, src/if_tcl.c, - src/main.c, src/mark.c, src/memfile.c, src/memline.c, src/misc1.c, - src/move.c, src/netbeans.c, src/normal.c, src/option.c, - src/quickfix.c, src/screen.c, src/spell.c, src/term.c, - src/window.c, src/workshop.c - -Patch 7.4.2102 (after 7.4.2101) -Problem: Tiny build with GUI fails. -Solution: Revert one FOR_ALL_ change. -Files: src/gui.c - -Patch 7.4.2103 -Problem: Can't have "augroup END" right after ":au!". -Solution: Check for the bar character before the command argument. -Files: src/fileio.c, src/testdir/test_autocmd.vim, - runtime/doc/autocmd.txt - -Patch 7.4.2104 -Problem: Code duplication when unreferencing a function. -Solution: De-duplicate. -Files: src/userfunc.c - -Patch 7.4.2105 -Problem: Configure reports default features to be "normal" while it is - "huge". -Solution: Change the default text. Build with newer autoconf. -Files: src/configure.in, src/auto/configure - -Patch 7.4.2106 -Problem: Clang warns about missing field in initializer. -Solution: Define COMMA and use it. (Kazunobu Kuriyama) -Files: src/ex_cmds.c, src/globals.h, src/vim.h - -Patch 7.4.2107 (after 7.4.2106) -Problem: Misplaced equal sign. -Solution: Remove it. -Files: src/globals.h - -Patch 7.4.2108 -Problem: Netbeans test is flaky. -Solution: Wait for the cursor to be positioned. -Files: src/testdir/test_netbeans.vim - -Patch 7.4.2109 -Problem: Setting 'display' to "lastline" is a drastic change, while - omitting it results in lots of "@" lines. -Solution: Add "truncate" to show "@@@" for a truncated line. -Files: src/option.h, src/screen.c, runtime/doc/options.txt - -Patch 7.4.2110 -Problem: When there is an CmdUndefined autocmd then the error for a missing - command is E464 instead of E492. (Manuel Ortega) -Solution: Don't let the pointer be NULL. -Files: src/ex_docmd.c, src/testdir/test_usercommands.vim - -Patch 7.4.2111 -Problem: Defaults are very conservative. -Solution: Move settings from vimrc_example.vim to defaults.vim. Load - defaults.vim if no .vimrc was found. -Files: src/main.c, src/version.c, src/os_amiga.h, src/os_dos.h, - src/os_mac.h, src/os_unix.h, src/feature.h, src/Makefile, - runtime/vimrc_example.vim, runtime/defaults.vim, - runtime/evim.vim, Filelist, runtime/doc/starting.txt - -Patch 7.4.2112 -Problem: getcompletion(.., 'dir') returns a match with trailing "*" when - there are no matches. (Chdiza) -Solution: Return an empty list when there are no matches. Add a trailing - slash to directories. (Yegappan Lakshmanan) Add tests for no - matches. (closes #947) -Files: src/evalfunc.c, src/testdir/test_cmdline.vim - -Patch 7.4.2113 -Problem: Test for undo is flaky. -Solution: Turn it into a new style test. Use test_settime() to avoid - flakyness. -Files: src/Makefile, src/undo.c, src/testdir/test61.in, - src/testdir/test61.ok, src/testdir/test_undo.vim, - src/testdir/test_undolevels.vim, src/testdir/Make_all.mak, - src/testdir/test_alot.vim - -Patch 7.4.2114 -Problem: Tiny build fails. -Solution: Always include vim_time(). -Files: src/ex_cmds.c - -Patch 7.4.2115 -Problem: Loading defaults.vim with -C argument. -Solution: Don't load the defaults script with -C argument. Test sourcing - the defaults script. Set 'display' to "truncate". -Files: src/main.c, src/Makefile, runtime/defaults.vim, - src/testdir/test_startup.vim, src/testdir/Make_all.mak - -Patch 7.4.2116 -Problem: The default vimrc for Windows is very conservative. -Solution: Use the defaults.vim in the Windows installer. -Files: src/dosinst.c - -Patch 7.4.2117 -Problem: Deleting an augroup that still has autocmds does not give a - warning. The next defined augroup takes its place. -Solution: Give a warning and prevent the index being used for another group - name. -Files: src/fileio.c, src/testdir/test_autocmd.vim - -Patch 7.4.2118 -Problem: Mac: can't build with tiny features. -Solution: Don't define FEAT_CLIPBOARD unconditionally. (Kazunobu Kuriyama) -Files: src/vim.h - -Patch 7.4.2119 -Problem: Closures are not supported. -Solution: Capture variables in lambdas from the outer scope. (Yasuhiro - Matsumoto, Ken Takata) -Files: runtime/doc/eval.txt, src/eval.c, src/ex_cmds2.c, src/globals.h, - src/proto/eval.pro, src/proto/userfunc.pro, - src/testdir/test_lambda.vim, src/userfunc.c - -Patch 7.4.2120 -Problem: User defined functions can't be a closure. -Solution: Add the "closure" argument. Allow using :unlet on a bound - variable. (Yasuhiro Matsumoto, Ken Takata) -Files: runtime/doc/eval.txt, src/testdir/test_lambda.vim, src/userfunc.c, - src/eval.c src/proto/userfunc.pro - -Patch 7.4.2121 -Problem: No easy way to check if lambda and closure are supported. -Solution: Add the +lambda feature. -Files: src/evalfunc.c, src/version.c, src/testdir/test_lambda.vim - -Patch 7.4.2122 (after 7.4.2118) -Problem: Mac: don't get +clipboard in huge build. -Solution: Move #define down below including feature.h -Files: src/vim.h - -Patch 7.4.2123 -Problem: No new style test for diff mode. -Solution: Add a test. Check that folds are in sync. -Files: src/Makefile, src/testdir/test_diffmode.vim, - src/testdir/Make_all.mak, src/testdir/test47.in, - src/testdir/test47.ok - -Patch 7.4.2124 -Problem: diffmode test leaves files behind, breaking another test. -Solution: Delete the files. -Files: src/testdir/test_diffmode.vim - -Patch 7.4.2125 -Problem: Compiler warning for loss of data. -Solution: Add a type cast. (Christian Brabandt) -Files: src/message.c - -Patch 7.4.2126 -Problem: No tests for :diffget and :diffput -Solution: Add tests. -Files: src/testdir/test_diffmode.vim - -Patch 7.4.2127 -Problem: The short form of ":noswapfile" is ":noswap" instead of ":nos". - (Kent Sibilev) -Solution: Only require three characters. Add a test for the short forms. -Files: src/ex_docmd.c, src/testdir/test_usercommands.vim - -Patch 7.4.2128 -Problem: Memory leak when saving for undo fails. -Solution: Free allocated memory. (Hirohito Higashi) -Files: src/ex_cmds.c - -Patch 7.4.2129 -Problem: Memory leak when using timer_start(). (Dominique Pelle) -Solution: Don't copy the callback when using a partial. -Files: src/evalfunc.c - -Patch 7.4.2130 -Problem: Pending timers cause false memory leak reports. -Solution: Free all timers on exit. -Files: src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/misc2.c - -Patch 7.4.2131 -Problem: More memory leaks when using partial, e.g. for "exit-cb". -Solution: Don't copy the callback when using a partial. -Files: src/channel.c - -Patch 7.4.2132 -Problem: test_partial has memory leaks reported. -Solution: Add a note about why this happens. -Files: src/testdir/test_partial.vim - -Patch 7.4.2133 (after 7.4.2128) -Problem: Can't build with tiny features. -Solution: Add #ifdef. -Files: src/ex_cmds.c - -Patch 7.4.2134 -Problem: No error for using function() badly. -Solution: Check for passing wrong function name. (Ken Takata) -Files: src/eval.c, src/evalfunc.c, src/proto/userfunc.pro, - src/testdir/test_expr.vim, src/userfunc.c, src/vim.h - -Patch 7.4.2135 -Problem: Various tiny issues. -Solution: Update comments, white space, etc. -Files: src/diff.c, src/digraph.c, src/testdir/test80.in, - src/testdir/test_channel.vim, src/testdir/Makefile, - runtime/menu.vim, src/INSTALLpc.txt, src/xpm/README.txt - -Patch 7.4.2136 -Problem: Closure function fails. -Solution: Don't reset uf_scoped when it points to another funccal. -Files: src/userfunc.c, src/testdir/test_lambda.vim - -Patch 7.4.2137 -Problem: Using function() with a name will find another function when it is - redefined. -Solution: Add funcref(). Refer to lambda using a partial. Fix several - reference counting issues. -Files: src/vim.h, src/structs.h, src/userfunc.c, src/eval.c, - src/evalfunc.c, src/channel.c, src/proto/eval.pro, - src/proto/userfunc.pro, src/if_mzsch.c, src/regexp.c, src/misc2.c, - src/if_py_both.h, src/testdir/test_expr.vim, runtime/doc/eval.txt - -Patch 7.4.2138 -Problem: Test 86 and 87 fail. -Solution: Call func_ref() also for regular functions. -Files: src/if_py_both.h - -Patch 7.4.2139 -Problem: :delfunction causes illegal memory access. -Solution: Correct logic when deciding to free a function. -Files: src/userfunc.c, src/testdir/test_lambda.vim - -Patch 7.4.2140 -Problem: Tiny build fails. -Solution: Add dummy typedefs. -Files: src/structs.h - -Patch 7.4.2141 -Problem: Coverity reports bogus NULL check. -Solution: When checking for a variable in the funccal scope don't pass the - varname. -Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c - -Patch 7.4.2142 -Problem: Leaking memory when redefining a function. -Solution: Don't increment the function reference count when it's found by - name. Don't remove the wrong function from the hashtab. More - reference counting fixes. -Files: src/structs.h, src/userfunc.c - -Patch 7.4.2143 -Problem: A funccal is garbage collected while it can still be used. -Solution: Set copyID in all referenced functions. Do not list lambda - functions with ":function". -Files: src/userfunc.c, src/proto/userfunc.pro, src/eval.c, - src/testdir/test_lambda.vim - -Patch 7.4.2144 -Problem: On MS-Windows quickfix does not handle a line with 1023 bytes - ending in CR-LF properly. -Solution: Don't consider CR a line break. (Ken Takata) -Files: src/quickfix.c - -Patch 7.4.2145 -Problem: Win32: Using CreateThread/ExitThread is not safe. -Solution: Use _beginthreadex and return from the thread. (Ken Takata) -Files: src/os_win32.c - -Patch 7.4.2146 -Problem: Not enough testing for popup menu. CTRL-E does not always work - properly. -Solution: Add more tests. When using CTRL-E check if the popup menu is - visible. (Christian Brabandt) -Files: src/edit.c, src/testdir/test_popup.vim - -Patch 7.4.2147 (after 7.4.2146) -Problem: test_alot fails. -Solution: Close window. -Files: src/testdir/test_popup.vim - -Patch 7.4.2148 -Problem: Not much testing for cscope. -Solution: Add a test that uses the cscope program. (Christian Brabandt) -Files: src/testdir/test_cscope.vim - -Patch 7.4.2149 -Problem: If a test leaves a window open a following test may fail. -Solution: Always close extra windows after running a test. -Files: src/testdir/runtest.vim, src/testdir/test_popup.vim - -Patch 7.4.2150 -Problem: Warning with MinGW 64. (John Marriott) -Solution: Change return type. (Ken Takata) -Files: src/os_win32.c - -Patch 7.4.2151 -Problem: Quickfix test fails on MS-Windows. -Solution: Close the help window. (Christian Brabandt) -Files: src/testdir/test_quickfix.vim - -Patch 7.4.2152 -Problem: No proper translation of messages with a count. -Solution: Use ngettext(). (Sergey Alyoshin) -Files: src/evalfunc.c, src/fold.c, src/os_win32.c, src/screen.c, src/vim.h - -Patch 7.4.2153 -Problem: GUI test isn't testing much. -Solution: Turn into a new style test. Execute a shell command. -Files: src/testdir/test_gui.vim, src/testdir/test16.in, - src/testdir/test16.ok, src/testdir/Make_all.mak, src/Makefile, - src/testdir/Make_vms.mms - -Patch 7.4.2154 -Problem: Test_communicate() fails sometimes. -Solution: Add it to the flaky tests. -Files: src/testdir/runtest.vim - -Patch 7.4.2155 -Problem: Quotes make GUI test fail on MS-Windows. -Solution: Remove quotes, strip white space. -Files: src/testdir/test_gui.vim - -Patch 7.4.2156 -Problem: Compiler warning. -Solution: Add type cast. (Ken Takata, Mike Williams) -Files: src/os_win32.c - -Patch 7.4.2157 -Problem: Test_job_start_fails() is expected to report memory leaks, making - it hard to see other leaks in test_partial. -Solution: Move Test_job_start_fails() to a separate test file. -Files: src/testdir/test_partial.vim, src/testdir/test_job_fails.vim, - src/Makefile, src/testdir/Make_all.mak - -Patch 7.4.2158 -Problem: Result of getcompletion('', 'cscope') depends on previous - completion. (Christian Brabandt) -Solution: Call set_context_in_cscope_cmd(). -Files: src/evalfunc.c, src/testdir/test_cmdline.vim - -Patch 7.4.2159 -Problem: Insufficient testing for cscope. -Solution: Add more tests. (Dominique Pelle) -Files: src/testdir/test_cscope.vim - -Patch 7.4.2160 -Problem: setmatches() mixes up values. (Nikolai Pavlov) -Solution: Save the string instead of reusing a shared buffer. -Files: src/dict.c, src/evalfunc.c, src/testdir/test_expr.vim, - -Patch 7.4.2161 (after 7.4.2160) -Problem: Expression test fails without conceal feature. -Solution: Only check "conceal" with the conceal feature. -Files: src/testdir/test_expr.vim - -Patch 7.4.2162 -Problem: Result of getcompletion('', 'sign') depends on previous - completion. -Solution: Call set_context_in_sign_cmd(). (Dominique Pelle) -Files: src/evalfunc.c, src/testdir/test_cmdline.vim - -Patch 7.4.2063 -Problem: eval.c is still too big. -Solution: Split off internal functions to evalfunc.c. -Files: src/eval.c, src/evalfunc.c, src/list.c, src/proto.h, - src/globals.h, src/vim.h, src/proto/eval.pro, - src/proto/evalfunc.pro, src/proto/list.pro, src/Makefile, Filelist, - src/Make_bc5.mak, src/Make_cyg_ming.mak, src/Make_dice.mak, - src/Make_ivc.mak, src/Make_manx.mak, src/Make_morph.mak, - src/Make_mvc.mak, src/Make_sas.mak - -Patch 7.4.2064 -Problem: Coverity warns for possible buffer overflow. -Solution: Use vim_strcat() instead of strcat(). -Files: src/quickfix.c - -Patch 7.4.2065 -Problem: Compiler warns for uninitialzed variable. (John Marriott) +Problem: Compiler warns for uninitialized variable. (John Marriott) Solution: Set lnum to the right value. Files: src/evalfunc.c @@ -14155,7 +13556,7 @@ Files: src/gui_gtk_x11.c Patch 7.4.2215 Problem: It's not easy to find out if a window is a quickfix or location list window. -Solution: Add "loclist" and "quickfix" entries to the dict returnec by +Solution: Add "loclist" and "quickfix" entries to the dict returned by getwininfo(). (Yegappan Lakshmanan) Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_bufwintabinfo.vim diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt index af06ac8c9f..81042dbcdf 100644 --- a/runtime/doc/windows.txt +++ b/runtime/doc/windows.txt @@ -1,4 +1,4 @@ -*windows.txt* For Vim version 7.4. Last change: 2016 Jul 30 +*windows.txt* For Vim version 7.4. Last change: 2016 Aug 18 VIM REFERENCE MANUAL by Bram Moolenaar @@ -75,7 +75,7 @@ places where a Normal mode command can't be used or is inconvenient. The main Vim window can hold several split windows. There are also tab pages |tab-page|, each of which can hold multiple windows. - + *window-ID* Each window has a unique identifier called the window ID. This identifier will not change within a Vim session. The |win_getid()| and |win_id2tabwin()| functions can be used to convert between the window/tab number and the diff --git a/runtime/filetype.vim b/runtime/filetype.vim index f96c6adee5..e46ad515c9 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar -" Last Change: 2016 Jul 21 +" Last Change: 2016 Aug 18 " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -779,8 +779,7 @@ au BufNewFile,BufRead *.mo,*.gdmo setf gdmo au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom " Git -au BufNewFile,BufRead COMMIT_EDITMSG setf gitcommit -au BufNewFile,BufRead MERGE_MSG setf gitcommit +au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig au BufNewFile,BufRead *.git/modules/*/config setf gitconfig au BufNewFile,BufRead */.config/git/config setf gitconfig diff --git a/runtime/indent/teraterm.vim b/runtime/indent/teraterm.vim index ba24257b02..8467cefcc0 100644 --- a/runtime/indent/teraterm.vim +++ b/runtime/indent/teraterm.vim @@ -1,9 +1,9 @@ " Vim indent file " Language: Tera Term Language (TTL) -" Based on Tera Term Version 4.86 +" Based on Tera Term Version 4.92 " Maintainer: Ken Takata " URL: https://github.com/k-takata/vim-teraterm -" Last Change: 2015 Jun 4 +" Last Change: 2016 Aug 17 " Filenames: *.ttl " License: VIM License @@ -25,9 +25,7 @@ endif " The shiftwidth() function is relatively new. " Don't require it to exist. if exists('*shiftwidth') - function s:sw() abort - return shiftwidth() - endfunction + let s:sw = function('shiftwidth') else function s:sw() abort return &shiftwidth @@ -48,7 +46,7 @@ function! GetTeraTermIndent(lnum) let l:ind = l:previ - if l:prevl =~ '^\s*if\>.*\.*\' " previous line opened a block let l:ind += s:sw() endif diff --git a/runtime/keymap/russian-jcukenmac.vim b/runtime/keymap/russian-jcukenmac.vim new file mode 100644 index 0000000000..e2120ca1d4 --- /dev/null +++ b/runtime/keymap/russian-jcukenmac.vim @@ -0,0 +1,94 @@ +" Vim Keymap file for russian characters, layout 'jcuken', Mac variant + +" Derived from russian-jcuken.vim by Artem Chuprina +" Maintainer: Anton Fonarev +" Last Changed: 2016 August 17 + +" All characters are given literally, conversion to another encoding (e.g., +" UTF-8) should work. + +scriptencoding utf-8 + +let b:keymap_name = "ru" + +loadkeymap + +\| Ё CYRILLIC CAPITAL LETTER IO +\\ ё CYRILLIC SMALL LETTER IO + +F А CYRILLIC CAPITAL LETTER A +< Б CYRILLIC CAPITAL LETTER BE +D В CYRILLIC CAPITAL LETTER VE +U Г CYRILLIC CAPITAL LETTER GHE +L Д CYRILLIC CAPITAL LETTER DE +T Е CYRILLIC CAPITAL LETTER IE +: Ж CYRILLIC CAPITAL LETTER ZHE +P З CYRILLIC CAPITAL LETTER ZE +B И CYRILLIC CAPITAL LETTER I +Q Й CYRILLIC CAPITAL LETTER SHORT I +R К CYRILLIC CAPITAL LETTER KA +K Л CYRILLIC CAPITAL LETTER EL +V М CYRILLIC CAPITAL LETTER EM +Y Н CYRILLIC CAPITAL LETTER EN +J О CYRILLIC CAPITAL LETTER O +G П CYRILLIC CAPITAL LETTER PE +H Р CYRILLIC CAPITAL LETTER ER +C С CYRILLIC CAPITAL LETTER ES +N Т CYRILLIC CAPITAL LETTER TE +E У CYRILLIC CAPITAL LETTER U +A Ф CYRILLIC CAPITAL LETTER EF +{ Х CYRILLIC CAPITAL LETTER HA +W Ц CYRILLIC CAPITAL LETTER TSE +X Ч CYRILLIC CAPITAL LETTER CHE +I Ш CYRILLIC CAPITAL LETTER SHA +O Щ CYRILLIC CAPITAL LETTER SHCHA +} Ъ CYRILLIC CAPITAL LETTER HARD SIGN +S Ы CYRILLIC CAPITAL LETTER YERU +M Ь CYRILLIC CAPITAL LETTER SOFT SIGN +\" Э CYRILLIC CAPITAL LETTER E +> Ю CYRILLIC CAPITAL LETTER YU +Z Я CYRILLIC CAPITAL LETTER YA +f а CYRILLIC SMALL LETTER A +, б CYRILLIC SMALL LETTER BE +d в CYRILLIC SMALL LETTER VE +u г CYRILLIC SMALL LETTER GHE +l д CYRILLIC SMALL LETTER DE +t е CYRILLIC SMALL LETTER IE +; ж CYRILLIC SMALL LETTER ZHE +p з CYRILLIC SMALL LETTER ZE +b и CYRILLIC SMALL LETTER I +q й CYRILLIC SMALL LETTER SHORT I +r к CYRILLIC SMALL LETTER KA +k л CYRILLIC SMALL LETTER EL +v м CYRILLIC SMALL LETTER EM +y н CYRILLIC SMALL LETTER EN +j о CYRILLIC SMALL LETTER O +g п CYRILLIC SMALL LETTER PE +h р CYRILLIC SMALL LETTER ER +c с CYRILLIC SMALL LETTER ES +n т CYRILLIC SMALL LETTER TE +e у CYRILLIC SMALL LETTER U +a ф CYRILLIC SMALL LETTER EF +[ х CYRILLIC SMALL LETTER HA +w ц CYRILLIC SMALL LETTER TSE +x ч CYRILLIC SMALL LETTER CHE +i ш CYRILLIC SMALL LETTER SHA +o щ CYRILLIC SMALL LETTER SHCHA +] ъ CYRILLIC SMALL LETTER HARD SIGN +s ы CYRILLIC SMALL LETTER YERU +m ь CYRILLIC SMALL LETTER SOFT SIGN +' э CYRILLIC SMALL LETTER E +. ю CYRILLIC SMALL LETTER YU +z я CYRILLIC SMALL LETTER YA + +§ > +± < +@ " +# № +$ % +% : +^ , +& . +* ; +` ] +~ [ diff --git a/runtime/syntax/rst.vim b/runtime/syntax/rst.vim index ef07b22676..232d2a7de3 100644 --- a/runtime/syntax/rst.vim +++ b/runtime/syntax/rst.vim @@ -2,7 +2,8 @@ " Language: reStructuredText documentation format " Maintainer: Marshall Ward " Previous Maintainer: Nikolai Weibull -" Latest Revision: 2016-06-17 +" Website: https://github.com/marshallward/vim-restructuredtext +" Latest Revision: 2016-08-18 if exists("b:current_syntax") finish @@ -89,7 +90,7 @@ function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_righ \ ' start=+' . a:char_left . '\zs' . a:start . \ '\ze[^[:space:]' . a:char_right . a:start[strlen(a:start) - 1] . ']+' . \ a:middle . - \ ' end=+\S' . a:end . '\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+' + \ ' end=+\S' . a:end . '\ze\%($\|\s\|[''"’)\]}>/:.,;!?\\-]\)+' endfunction function! s:DefineInlineMarkup(name, start, middle, end) @@ -103,6 +104,8 @@ function! s:DefineInlineMarkup(name, start, middle, end) call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\[', '\]') call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '{', '}') call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '<', '>') + call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '’', '’') + " TODO: Additional Unicode Pd, Po, Pi, Pf, Ps characters call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\%(^\|\s\|[/:]\)', '') @@ -186,11 +189,8 @@ hi def link rstHyperlinkTarget String hi def link rstExDirective String hi def link rstSubstitutionDefinition rstDirective hi def link rstDelimiter Delimiter -hi def link rstEmphasis Underlined -hi def link rstStrongEmphasis Special -" TODO Append these atttributes somehow -"hi def rstEmphasis term=italic cterm=italic gui=italic -"hi def rstStrongEmphasis term=bold cterm=bold gui=bold +hi def rstEmphasis ctermfg=13 term=italic cterm=italic gui=italic +hi def rstStrongEmphasis ctermfg=1 term=bold cterm=bold gui=bold hi def link rstInterpretedTextOrHyperlinkReference Identifier hi def link rstInlineLiteral String hi def link rstSubstitutionReference PreProc diff --git a/runtime/syntax/teraterm.vim b/runtime/syntax/teraterm.vim index 521331d8ce..1924996738 100644 --- a/runtime/syntax/teraterm.vim +++ b/runtime/syntax/teraterm.vim @@ -1,9 +1,9 @@ " Vim syntax file " Language: Tera Term Language (TTL) -" Based on Tera Term Version 4.86 +" Based on Tera Term Version 4.92 " Maintainer: Ken Takata " URL: https://github.com/k-takata/vim-teraterm -" Last Change: 2015 Jun 24 +" Last Change: 2016 Aug 17 " Filenames: *.ttl " License: VIM License @@ -33,7 +33,7 @@ syn keyword ttlOperator and or xor not syn match ttlVar "\" syn match ttlVar "\" -syn keyword ttlVar inputstr matchstr paramcnt result timeout mtimeout +syn keyword ttlVar inputstr matchstr paramcnt params result timeout mtimeout syn match ttlLine nextgroup=ttlStatement "^" From 9e4d8215d386100ab660d7d11e6620fd148b605e Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 18 Aug 2016 23:04:48 +0200 Subject: [PATCH 4/4] patch 7.4.2228 Problem: Test files have inconsistant modelines. Solution: Don't set 'tabstop' to 2, use 'sts' and 'sw'. --- src/testdir/README.txt | 5 +++-- src/testdir/test_backspace_opt.vim | 2 +- src/testdir/test_digraph.vim | 2 +- src/testdir/test_gn.vim | 2 +- src/testdir/test_help_tagjump.vim | 2 +- src/testdir/test_increment.vim | 2 +- src/testdir/test_increment_dbcs.vim | 2 +- src/testdir/test_match.vim | 2 +- src/testdir/test_regexp_latin.vim | 1 - src/testdir/test_tagjump.vim | 2 +- src/testdir/test_timers.vim | 2 +- src/testdir/test_window_cmd.vim | 2 +- src/version.c | 2 ++ 13 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/testdir/README.txt b/src/testdir/README.txt index 534f05fd53..3b2e101c8f 100644 --- a/src/testdir/README.txt +++ b/src/testdir/README.txt @@ -3,11 +3,12 @@ This directory contains tests for various Vim features. If it makes sense, add a new test method to an already existing file. You may want to separate it from other tests with comment lines. -The numbered tests are older, we have switched to named tests. +The numbered tests are older, we have switched to named tests. Don't add any +more numbered tests. And then you can choose between a new style test, which is a Vim script, or an old style test, which uses Normal mode commands. Use a new style test if you -can. +can. Use an old style test when it needs to run without the +eval feature. TO ADD A NEW STYLE TEST: diff --git a/src/testdir/test_backspace_opt.vim b/src/testdir/test_backspace_opt.vim index 7fbba96c66..fd81f42b66 100644 --- a/src/testdir/test_backspace_opt.vim +++ b/src/testdir/test_backspace_opt.vim @@ -56,4 +56,4 @@ func Test_backspace_option() set nocompatible viminfo+=nviminfo endfunc -" vim: tabstop=2 shiftwidth=0 expandtab +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_digraph.vim b/src/testdir/test_digraph.vim index 95500853f2..6290680305 100644 --- a/src/testdir/test_digraph.vim +++ b/src/testdir/test_digraph.vim @@ -458,4 +458,4 @@ func! Test_digraph_cmndline() call assert_equal("€", s) endfunc -" vim: tabstop=2 shiftwidth=0 sts=-1 expandtab +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_gn.vim b/src/testdir/test_gn.vim index 3eca99bd99..7a5cdabaa3 100644 --- a/src/testdir/test_gn.vim +++ b/src/testdir/test_gn.vim @@ -90,4 +90,4 @@ func Test_gn_command() sil! %d _ endfu -" vim: tabstop=2 shiftwidth=0 expandtab +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_help_tagjump.vim b/src/testdir/test_help_tagjump.vim index 0f14ade6ba..778bd9c71f 100644 --- a/src/testdir/test_help_tagjump.vim +++ b/src/testdir/test_help_tagjump.vim @@ -150,4 +150,4 @@ func Test_help_complete() endtry endfunc -" vim: et sw=2: +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_increment.vim b/src/testdir/test_increment.vim index e53b569716..8bfd95d810 100644 --- a/src/testdir/test_increment.vim +++ b/src/testdir/test_increment.vim @@ -757,4 +757,4 @@ func Test_normal_increment_03() endfunc -" vim: tabstop=2 shiftwidth=2 expandtab +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_increment_dbcs.vim b/src/testdir/test_increment_dbcs.vim index e1b663293e..dea405c633 100644 --- a/src/testdir/test_increment_dbcs.vim +++ b/src/testdir/test_increment_dbcs.vim @@ -27,4 +27,4 @@ func Test_increment_dbcs_1() call assert_equal([0, 1, 10, 0], getpos('.')) endfunc -" vim: shiftwidth=2 expandtab +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_match.vim b/src/testdir/test_match.vim index 67f3ea7373..000893673b 100644 --- a/src/testdir/test_match.vim +++ b/src/testdir/test_match.vim @@ -186,4 +186,4 @@ func Test_matchaddpos() set hlsearch& endfunc -" vim: et ts=2 sw=2 +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_regexp_latin.vim b/src/testdir/test_regexp_latin.vim index ea3b2e7392..b3d258e097 100644 --- a/src/testdir/test_regexp_latin.vim +++ b/src/testdir/test_regexp_latin.vim @@ -38,4 +38,3 @@ func Test_recursive_substitute() call setwinvar(1, 'myvar', 1) bwipe! endfunc - diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim index 97d86e6ecb..b22bde8047 100644 --- a/src/testdir/test_tagjump.vim +++ b/src/testdir/test_tagjump.vim @@ -7,4 +7,4 @@ func Test_ptag_with_notagstack() set tagstack&vim endfunc -" vim: sw=2 et +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_timers.vim b/src/testdir/test_timers.vim index f334c17464..46777d1ea5 100644 --- a/src/testdir/test_timers.vim +++ b/src/testdir/test_timers.vim @@ -112,4 +112,4 @@ func Test_paused() call assert_inrange(0, 10, slept) endfunc -" vim: ts=2 sw=0 et +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim index b7f41a711b..569a78a0ed 100644 --- a/src/testdir/test_window_cmd.vim +++ b/src/testdir/test_window_cmd.vim @@ -67,4 +67,4 @@ function Test_window_cmd_wincmd_gf() augroup! test_window_cmd_wincmd_gf endfunc -" vim: sw=2 et +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 06aeb290eb..6486e6a67f 100644 --- a/src/version.c +++ b/src/version.c @@ -763,6 +763,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2228, /**/ 2227, /**/