To: vim_dev@googlegroups.com Subject: Patch 8.0.1131 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.1131 Problem: It is not easy to trigger an autocommand for new terminal window. (Marco Restelli) Solution: Trigger BufWinEnter after setting 'buftype'. Files: src/terminal.c, src/testdir/test_terminal.vim *** ../vim-8.0.1130/src/terminal.c 2017-09-18 21:23:02.938622902 +0200 --- src/terminal.c 2017-09-21 22:05:21.397401688 +0200 *************** *** 38,48 **** --- 38,51 ---- * in tl_scrollback are no longer used. * * TODO: + * - in GUI vertical split causes problems. Cursor is flickering. (Hirohito + * Higashi, 2017 Sep 19) * - Shift-Tab does not work. * - click in Window toolbar of other window: save/restore Insert and Visual * - Redirecting output does not work on MS-Windows, Test_terminal_redir_file() * is disabled. * - implement term_setsize() + * - MS-Windows GUI: still need to type a key after shell exits? #1924 * - add test for giving error for invalid 'termsize' value. * - support minimal size when 'termsize' is "rows*cols". * - support minimal size when 'termsize' is empty? *************** *** 445,450 **** --- 448,459 ---- * a deadlock if the job is waiting for Vim to read. */ channel_set_nonblock(term->tl_job->jv_channel, PART_IN); + #ifdef FEAT_AUTOCMD + ++curbuf->b_locked; + apply_autocmds(EVENT_BUFWINENTER, NULL, NULL, FALSE, curbuf); + --curbuf->b_locked; + #endif + if (old_curbuf != NULL) { --curbuf->b_nwindows; *** ../vim-8.0.1130/src/testdir/test_terminal.vim 2017-09-17 19:07:58.524464106 +0200 --- src/testdir/test_terminal.vim 2017-09-21 22:14:50.041895614 +0200 *************** *** 34,40 **** --- 34,42 ---- endfunc func Test_terminal_basic() + au BufWinEnter * if &buftype == 'terminal' | let b:done = 'yes' | endif let buf = Run_shell_in_terminal({}) + if has("unix") call assert_match('^/dev/', job_info(g:job).tty_out) call assert_match('^/dev/', term_gettty('')) *************** *** 43,48 **** --- 45,51 ---- call assert_match('^\\\\.\\pipe\\', term_gettty('')) endif call assert_equal('t', mode()) + call assert_equal('yes', b:done) call assert_match('%aR[^\n]*running]', execute('ls')) call Stop_shell_in_terminal(buf) *************** *** 54,59 **** --- 57,63 ---- close call assert_equal("", bufname(buf)) + au! BufWinEnter unlet g:job endfunc *** ../vim-8.0.1130/src/version.c 2017-09-20 22:42:58.454952103 +0200 --- src/version.c 2017-09-21 22:15:27.757662964 +0200 *************** *** 763,764 **** --- 763,766 ---- { /* Add new patch number below this line */ + /**/ + 1131, /**/ -- hundred-and-one symptoms of being an internet addict: 170. You introduce your wife as "my_lady@home.wife" and refer to your children as "forked processes." /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///