Mercurial > vim
view src/testdir/test_close_count.in @ 9003:072556995a8e v7.4.1787
commit https://github.com/vim/vim/commit/b2658a1ab02cd0ba848164f70c7c464fdc398162
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Apr 26 17:16:24 2016 +0200
patch 7.4.1787
Problem: When a job ends the close callback is invoked before other
callbacks. On Windows the close callback is not called.
Solution: First invoke out/err callbacks before the close callback.
Make the close callback work on Windows.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 26 Apr 2016 17:30:05 +0200 |
parents | 22f95a018b13 |
children | ae45d497868f |
line wrap: on
line source
Tests for :[count]close! and :[count]hide vim: set ft=vim : STARTTEST :so small.vim :let tests = [] :for i in range(5) :new :endfor :4wincmd w :close! :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :1close! :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :$close! :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :1wincmd w :2close! :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :1wincmd w :new :new :2wincmd w :-1close! :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :2wincmd w :+1close! :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :e! test.out :call append(0, map(copy(tests), 'join(v:val, " ")')) :w :only! :b1 ENDTEST STARTTEST :let tests = [] :for i in range(5) :new :endfor :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :4wincmd w :.hide :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :1hide :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :$hide :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :1wincmd w :2hide :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :1wincmd w :new :new :3wincmd w :-hide :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :2wincmd w :+hide :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :e! test.out :call append(line('$'), map(copy(tests), 'join(v:val, " ")')) Go :w :only! :b1 ENDTEST STARTTEST :let tests = [] :set hidden :for i in range(5) :new :endfor :1wincmd w :$ hide :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :$-1 close! :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :1wincmd w :.+close! :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :e! test.out :call append(line('$'), map(copy(tests), 'join(v:val, " ")')) Go :w :only! :b1 ENDTEST STARTTEST :let tests = [] :set hidden :for i in range(5) :new :endfor :4wincmd w c :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) 1c :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) 9c :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :1wincmd w 2c :let buffers = [] :windo call add(buffers, bufnr('%')) :call add(tests, buffers) :only! :e! test.out :call append(line('$'), map(copy(tests), 'join(v:val, " ")')) :w :qa! ENDTEST