Patch 8.0.09911
Patch 8.0.0911 Problem:Terminal test takes too long. Solution: Instead of "sleep 1" use a Python program to briefly sleep. Files: src/testdir/test_terminal.vim, src/testdir/test_short_sleep.py *** ../vim-8.0.0910/src/testdir/test_terminal.vim 2017-08-11 22:27:44.513127603 +0200 --- src/testdir/test_terminal.vim 2017-08-11 22:43:13.742563761 +0200 *** *** 6,11 --- 6,13 source shared.vim + let s:python = PythonProg() + " Open a terminal with a shell, assign the job to g:job and return the buffer " number. func Run_shell_in_terminal(options) *** *** 319,359 endfunc func Test_finish_close() - " TODO: use something that takes much less than a whole second - echo 'This will take five seconds...' call assert_equal(1, winnr('$')) ! if has('win32') ! let cmd = $windir . '\system32\timeout.exe 1' else ! let cmd = 'sleep 1' endif exe 'terminal ++close ' . cmd let buf = bufnr('') call assert_equal(2, winnr('$')) - wincmd p ! sleep 1200 msec call assert_equal(1, winnr('$')) call term_start(cmd, {'term_finish': 'close'}) call assert_equal(2, winnr('$')) let buf = bufnr('') wincmd p ! sleep 1200 msec call assert_equal(1, winnr('$')) exe 'terminal ++open ' . cmd let buf = bufnr('') close ! sleep 1200 msec call assert_equal(2, winnr('$')) bwipe call term_start(cmd, {'term_finish': 'open'}) let buf = bufnr('') close ! sleep 1200 msec call assert_equal(2, winnr('$')) bwipe --- 321,366 endfunc func Test_finish_close() call assert_equal(1, winnr('$')) ! if s:python != '' ! let cmd = s:python . " test_short_sleep.py" ! let waittime = 500 else ! echo 'This will take five seconds...' ! let waittime = 2000 ! if has('win32') ! let cmd = $windir . '\system32\timeout.exe 1' ! else ! let cmd = 'sleep 1' ! endif endif + exe 'terminal ++close ' . cmd let buf = bufnr('') call assert_equal(2, winnr('$')) wincmd p ! call WaitFor("winnr('$') == 1", waittime) call assert_equal(1, winnr('$')) call term_start(cmd, {'term_finish': 'close'}) call assert_equal(2, winnr('$')) let buf = bufnr('') wincmd p ! call WaitFor("winnr('$') == 1", waittime) call assert_equal(1, winnr('$')) exe 'terminal ++open ' . cmd let buf = bufnr('') close ! call WaitFor("winnr('$') == 2", waittime) call assert_equal(2, winnr('$')) bwipe call term_start(cmd, {'term_finish': 'open'}) let buf = bufnr('') close ! call WaitFor("winnr('$') == 2", waittime) call assert_equal(2, winnr('$')) bwipe *** ../vim-8.0.0910/src/testdir/test_short_sleep.py 2017-08-11 22:44:11.578155307 +0200 --- src/testdir/test_short_sleep.py 2017-08-11 22:31:11.635664630 +0200 *** *** 0 --- 1,11 + #!/usr/bin/python + # + # Program that sleeps for 100 msec + # + # This requires Python 2.6 or later. + + import time + + if __name__ == "__main__": + + time.sleep(0.1) # sleep 100 msec *** ../vim-8.0.0910/src/version.c 2017-08-11 22:27:44.513127603 +0200 --- src/version.c 2017-08-11 22:32:18.603191534 +0200 *** *** 771,772 --- 771,774 { /* Add new patch number below this line */ + /**/ + 911, /**/ -- Yesterday, all my deadlines seemed so far away now it looks as though it's freeze in four days oh I believe in cvs.. [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ] /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.0.0910
Patch 8.0.0910 Problem:Cannot create a terminal in the current window. Solution: Add option "curwin" and ++curwin. Files: src/terminal.c, runtime/doc/eval.txt, src/channel.c, src/structs.h, src/ex_cmds.h, src/testdir/test_terminal.vim *** ../vim-8.0.0909/src/terminal.c 2017-08-11 21:51:18.804637212 +0200 --- src/terminal.c 2017-08-11 22:14:57.926538594 +0200 *** *** 244,250 } static void ! term_start(char_u *cmd, jobopt_T *opt) { exarg_T split_ea; win_T *old_curwin = curwin; --- 244,250 } static void ! term_start(char_u *cmd, jobopt_T *opt, int forceit) { exarg_T split_ea; win_T *old_curwin = curwin; *** *** 261,288 term->tl_finish = opt->jo_term_finish; ga_init2(>tl_scrollback, sizeof(sb_line_T), 300); - /* Open a new window or tab. */ vim_memset(_ea, 0, sizeof(split_ea)); ! split_ea.cmdidx = CMD_new; ! split_ea.cmd = (char_u *)"new"; ! split_ea.arg = (char_u *)""; ! if (opt->jo_term_rows > 0 && !(cmdmod.split & WSP_VERT)) { ! split_ea.line2 = opt->jo_term_rows; ! split_ea.addr_count = 1; } ! if (opt->jo_term_cols > 0 && (cmdmod.split & WSP_VERT)) { ! split_ea.line2 = opt->jo_term_cols; ! split_ea.addr_count = 1; ! } ! ex_splitview(_ea); ! if (curwin == old_curwin) ! { ! /* split failed */ ! vim_free(term); ! return; } term->tl_buffer = curbuf; curbuf->b_term = term; --- 261,303 term->tl_finish = opt->jo_term_finish; ga_init2(>tl_scrollback, sizeof(sb_line_T), 300); vim_memset(_ea, 0, sizeof(split_ea)); ! if (opt->jo_curwin) { ! /* Create a new buffer in the current window. */ ! if (!can_abandon(curbuf, forceit)) ! { ! EMSG(_(e_nowrtmsg)); ! return; ! } ! if (do_ecmd(0, NULL, NULL, _ea, ECMD_ONE, !ECMD_HIDE + (forceit ? ECMD_FORCEIT : 0), curwin) == FAIL) ! return; } ! else { ! /* Open a new window or tab. */ ! split_ea.cmdidx = CMD_new; ! split_ea.cmd = (char_u *)"new"; ! split_ea.arg = (char_u *)""; ! if (opt->jo_term_rows > 0 && !(cmdmod.split & WSP_VERT)) ! { ! split_ea.line2 = opt->jo_term_rows; ! split_ea.addr_count = 1; ! } ! if (opt->jo_term_cols > 0 && (cmdmod.split & WSP_VERT)) ! { ! split_ea.line2 = opt->jo_term_cols; ! split_ea.addr_count = 1; ! } ! ex_splitview(_ea); ! if (curwin == old_curwin) ! { ! /* split failed */ ! vim_free(term); ! return; ! } } term->tl_buffer = curbuf; curbuf->b_term = term; *** *** 378,383 --- 393,400 opt.jo_term_finish = 'c'; else if ((int)(p - cmd) == 4 && STRNICMP(cmd, "open", 4) == 0) opt.jo_term_finish = 'o'; + else if ((int)(p - cmd) == 6 && STRNICMP(cmd, "curwin", 6) == 0) + opt.jo_curwin = 1; else { if (*p) *** *** 400,408 else opt.jo_term_rows = eap->line2; } - /* TODO: get more options from before the command */ ! term_start(cmd, ); } /* --- 417,424 else opt.jo_term_rows = eap->line2; } ! term_start(cmd, , eap->forceit); } /* *** *** 2365,2377 JO_TIMEOUT_ALL + JO_STOPONEXIT + JO_EXIT_CB + JO_CLOSE_CALLBACK, JO2_TERM_NAME + JO2_TERM_FINISH ! + JO2_TERM_COLS + JO2_TERM_ROWS + JO2_VERTICAL + JO2_CWD + JO2_ENV) == FAIL) return; if (opt.jo_vertical) cmdmod.split = WSP_VERT; ! term_start(cmd, ); if (curbuf->b_term != NULL) rettv->vval.v_number = curbuf->b_fnum; --- 2381,2393 JO_TIMEOUT_ALL + JO_STOPONEXIT + JO_EXIT_CB + JO_CLOSE_CALLBACK, JO2_TERM_NAME + JO2_TERM_FINISH ! + JO2_TERM_COLS + JO2_TERM_ROWS + JO2_VERTICAL + JO2_CURWIN + JO2_CWD + JO2_ENV) == FAIL) return; if (opt.jo_vertical) cmdmod.split = WSP_VERT; ! term_start(cmd, , FALSE); if (curbuf->b_term != NULL) rettv->vval.v_number = curbuf->b_fnum; *** ../vim-8.0.0909/runtime/doc/eval.txt2017-08-11 21:51:18.808637183 +0200 --- runtime/doc/eval.txt2017-08-11 21:55:05.543014554 +0200 *** *** 8077,8082 --- 8077,8085 "term_cols" horizontal size to use for the terminal, instead of using 'termsize' "vertical"split the window vertically + "curwin" use the current window, do not split the +
Patch 8.0.0909
Patch 8.0.0909 Problem:Channel test fails. Solution: Allow for "cwd" and "env" arguments. Files: src/channel.c *** ../vim-8.0.0908/src/channel.c 2017-08-11 21:51:18.808637183 +0200 --- src/channel.c 2017-08-11 22:21:18.947849890 +0200 *** *** 4976,4983 clear_job_options(); opt.jo_mode = MODE_NL; if (get_job_options([1], , ! JO_MODE_ALL + JO_CB_ALL + JO_TIMEOUT_ALL + JO_STOPONEXIT !+ JO_EXIT_CB + JO_OUT_IO + JO_BLOCK_WRITE, 0) == FAIL) goto theend; } --- 4983,4991 clear_job_options(); opt.jo_mode = MODE_NL; if (get_job_options([1], , ! JO_MODE_ALL + JO_CB_ALL + JO_TIMEOUT_ALL + JO_STOPONEXIT !+ JO_EXIT_CB + JO_OUT_IO + JO_BLOCK_WRITE, !JO2_ENV + JO2_CWD) == FAIL) goto theend; } *** ../vim-8.0.0908/src/version.c 2017-08-11 21:51:18.812637155 +0200 --- src/version.c 2017-08-11 22:22:15.259452393 +0200 *** *** 771,772 --- 771,774 { /* Add new patch number below this line */ + /**/ + 909, /**/ -- Snoring is prohibited unless all bedroom windows are closed and securely locked. [real standing law in Massachusetts, United States of America] /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.0.0908
Patch 8.0.0908 Problem:Cannot set terminal size with options. Solution: Add "term_rows", "term_cols" and "vertical". Files: src/terminal.c, runtime/doc/eval.txt, src/channel.c, src/proto/channel.pro, src/structs.h, src/evalfunc.c, src/testdir/test_terminal.vim *** ../vim-8.0.0907/src/terminal.c 2017-08-11 19:12:05.052966360 +0200 --- src/terminal.c 2017-08-11 21:44:05.607739252 +0200 *** *** 237,244 opt->jo_io_buf[PART_OUT] = curbuf->b_fnum; opt->jo_io_buf[PART_ERR] = curbuf->b_fnum; opt->jo_pty = TRUE; ! opt->jo_term_rows = rows; ! opt->jo_term_cols = cols; } static void --- 237,246 opt->jo_io_buf[PART_OUT] = curbuf->b_fnum; opt->jo_io_buf[PART_ERR] = curbuf->b_fnum; opt->jo_pty = TRUE; ! if ((opt->jo_set2 & JO2_TERM_ROWS) == 0) ! opt->jo_term_rows = rows; ! if ((opt->jo_set2 & JO2_TERM_COLS) == 0) ! opt->jo_term_cols = cols; } static void *** *** 2361,2371 if (argvars[1].v_type != VAR_UNKNOWN && get_job_options([1], , JO_TIMEOUT_ALL + JO_STOPONEXIT ! + JO_EXIT_CB + JO_CLOSE_CALLBACK ! + JO2_TERM_NAME + JO2_TERM_FINISH ! + JO2_CWD + JO2_ENV) == FAIL) return; term_start(cmd, ); if (curbuf->b_term != NULL) --- 2363,2376 if (argvars[1].v_type != VAR_UNKNOWN && get_job_options([1], , JO_TIMEOUT_ALL + JO_STOPONEXIT ! + JO_EXIT_CB + JO_CLOSE_CALLBACK, ! JO2_TERM_NAME + JO2_TERM_FINISH ! + JO2_TERM_COLS + JO2_TERM_ROWS + JO2_VERTICAL ! + JO2_CWD + JO2_ENV) == FAIL) return; + if (opt.jo_vertical) + cmdmod.split = WSP_VERT; term_start(cmd, ); if (curbuf->b_term != NULL) *** ../vim-8.0.0907/runtime/doc/eval.txt2017-08-11 20:25:22.097565404 +0200 --- runtime/doc/eval.txt2017-08-11 21:47:44.250173325 +0200 *** *** 8050,8057 term_start({cmd}, {options}) *term_start()* Open a terminal window and run {cmd} in it. ! Returns the buffer number of the terminal window. ! When opening the window fails zero is returned. {options} are similar to what is used for |job_start()|, see |job-options|. However, not all options can be used. These --- 8050,8059 term_start({cmd}, {options}) *term_start()* Open a terminal window and run {cmd} in it. ! Returns the buffer number of the terminal window. If {cmd} ! cannot be executed the window does open and shows an error ! message. ! If opening the window fails zero is returned. {options} are similar to what is used for |job_start()|, see |job-options|. However, not all options can be used. These *** *** 8067,8076 connected to the terminal. When I/O is connected to the terminal then the callback function for that part is not used. ! There are two extra options: "term_name" name to use for the buffer name, instead of the command name. ! "term_finish" What todo when the job is finished: "close": close any windows "open": open window if needed Note that "open" can be interruptive. --- 8069,8083 connected to the terminal. When I/O is connected to the terminal then the callback function for that part is not used. ! There are extra options: "term_name" name to use for the buffer name, instead of the command name. ! "term_rows" vertical size to use for the terminal, !instead of using 'termsize' ! "term_cols" horizontal size to use for the terminal, !instead of using 'termsize' ! "vertical"split the window vertically ! "term_finish" What to do when the job is finished: "close": close any windows "open": open window if needed Note that "open" can be interruptive. *** ../vim-8.0.0907/src/channel.c 2017-08-11 19:12:05.052966360 +0200 --- src/channel.c 2017-08-11 21:39:37.745655960 +0200 *** *** 927,933 opt.jo_mode = MODE_JSON; opt.jo_timeout = 2000; if (get_job_options([1], , ! JO_MODE_ALL +
Patch 8.0.0907
Patch 8.0.0907 Problem:With cp932 font names might be misinterpreted. Solution: Do not see "_" as a space when it is the second byte of a double byte character. (Ken Takata) Files: src/os_win32.c *** ../vim-8.0.0906/src/os_mswin.c 2017-08-07 21:17:53.00919 +0200 --- src/os_mswin.c 2017-08-11 20:53:34.861374456 +0200 *** *** 2965,2971 int did_replace = FALSE; for (i = 0; lf->lfFaceName[i]; ++i) ! if (lf->lfFaceName[i] == '_') { lf->lfFaceName[i] = ' '; did_replace = TRUE; --- 2965,2973 int did_replace = FALSE; for (i = 0; lf->lfFaceName[i]; ++i) ! if (IsDBCSLeadByte(lf->lfFaceName[i])) ! ++i; ! else if (lf->lfFaceName[i] == '_') { lf->lfFaceName[i] = ' '; did_replace = TRUE; *** ../vim-8.0.0906/src/version.c 2017-08-11 20:50:00.722908598 +0200 --- src/version.c 2017-08-11 20:55:05.336730685 +0200 *** *** 771,772 --- 771,774 { /* Add new patch number below this line */ + /**/ + 907, /**/ -- Why don't cannibals eat clowns? Because they taste funny. /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.0.0906
Patch 8.0.0906 Problem:Don't recognize Couchbase files. Solution: Add filetype detection. (Eugene Ciurana, closes #1951) Files: runtime/filetype.vim, src/testdir/test_filetype.vim *** ../vim-8.0.0905/runtime/filetype.vim2017-08-09 22:06:25.158509929 +0200 --- runtime/filetype.vim2017-08-11 20:48:56.007373763 +0200 *** *** 1,7 " Vim support file to detect file types " " Maintainer: Bram Moolenaar! " Last Change:2017 Aug 09 " Listen very carefully, I will say this only once if exists("did_load_filetypes") --- 1,7 " Vim support file to detect file types " " Maintainer: Bram Moolenaar ! " Last Change:2017 Aug 11 " Listen very carefully, I will say this only once if exists("did_load_filetypes") *** *** 1342,1347 --- 1342,1350 " Mutt setup file (also for Muttng) au BufNewFile,BufRead Mutt{ng,}rc setf muttrc + " N1QL + au BufRead,BufNewfile *.n1ql,*.nqlsetf n1ql + " Nano au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc *** ../vim-8.0.0905/src/testdir/test_filetype.vim 2017-08-09 22:24:48.306504337 +0200 --- src/testdir/test_filetype.vim 2017-08-11 20:42:37.882093776 +0200 *** *** 297,302 --- 297,303 \ 'mush': ['file.mush'], \ 'muttrc': ['Muttngrc', 'Muttrc'], \ 'mysql': ['file.mysql'], + \ 'n1ql': ['file.n1ql', 'file.nql'], \ 'named': ['namedfile.conf', 'rndcfile.conf'], \ 'nanorc': ['/etc/nanorc', 'file.nanorc'], \ 'ncf': ['file.ncf'], *** ../vim-8.0.0905/src/version.c 2017-08-11 20:36:55.676558704 +0200 --- src/version.c 2017-08-11 20:49:30.259127554 +0200 *** *** 771,772 --- 771,774 { /* Add new patch number below this line */ + /**/ + 906, /**/ -- Biting someone with your natural teeth is "simple assault," while biting someone with your false teeth is "aggravated assault." [real standing law in Louisana, United States of America] /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.0.0905
Patch 8.0.0905 Problem:MS-Windows: broken multi-byte characters in the console. Solution: Restore all regions of the console buffer. (Ken Takata) Files: src/os_win32.c *** ../vim-8.0.0904/src/os_win32.c 2017-08-11 19:12:05.056966332 +0200 --- src/os_win32.c 2017-08-11 20:33:01.038250779 +0200 *** *** 2192,2197 --- 2192,2199 CONSOLE_SCREEN_BUFFER_INFOInfo; PCHAR_INFOBuffer; COORD BufferSize; + PSMALL_RECT Regions; + int NumRegions; } ConsoleBuffer; /* *** *** 2212,2217 --- 2214,2220 COORD BufferCoord; SMALL_RECT ReadRegion; WORD Y, Y_incr; + int i, numregions; if (cb == NULL) return FALSE; *** *** 2254,2260 ReadRegion.Left = 0; ReadRegion.Right = cb->Info.dwSize.X - 1; Y_incr = 12000 / cb->Info.dwSize.X; ! for (Y = 0; Y < cb->BufferSize.Y; Y += Y_incr) { /* * Read into position (0, Y) in our buffer. --- 2257,2278 ReadRegion.Left = 0; ReadRegion.Right = cb->Info.dwSize.X - 1; Y_incr = 12000 / cb->Info.dwSize.X; ! ! numregions = (cb->Info.dwSize.Y + Y_incr - 1) / Y_incr; ! if (cb->Regions == NULL || numregions != cb->NumRegions) ! { ! cb->NumRegions = numregions; ! vim_free(cb->Regions); ! cb->Regions = (PSMALL_RECT)alloc(cb->NumRegions * sizeof(SMALL_RECT)); ! if (cb->Regions == NULL) ! { ! vim_free(cb->Buffer); ! cb->Buffer = NULL; ! return FALSE; ! } ! } ! ! for (i = 0, Y = 0; i < cb->NumRegions; i++, Y += Y_incr) { /* * Read into position (0, Y) in our buffer. *** *** 2268,2274 */ ReadRegion.Top = Y; ReadRegion.Bottom = Y + Y_incr - 1; ! if (!ReadConsoleOutput(g_hConOut, /* output handle */ cb->Buffer, /* our buffer */ cb->BufferSize, /* dimensions of our buffer */ BufferCoord,/* offset in our buffer */ --- 2286,2292 */ ReadRegion.Top = Y; ReadRegion.Bottom = Y + Y_incr - 1; ! if (!ReadConsoleOutputW(g_hConOut, /* output handle */ cb->Buffer, /* our buffer */ cb->BufferSize, /* dimensions of our buffer */ BufferCoord,/* offset in our buffer */ *** *** 2276,2283 --- 2294,2304 { vim_free(cb->Buffer); cb->Buffer = NULL; + vim_free(cb->Regions); + cb->Regions = NULL; return FALSE; } + cb->Regions[i] = ReadRegion; } return TRUE; *** *** 2299,2304 --- 2320,2326 { COORD BufferCoord; SMALL_RECT WriteRegion; + int i; if (cb == NULL || !cb->IsValid) return FALSE; *** *** 2335,2353 */ if (cb->Buffer != NULL) { ! BufferCoord.X = 0; ! BufferCoord.Y = 0; ! WriteRegion.Left = 0; ! WriteRegion.Top = 0; ! WriteRegion.Right = cb->Info.dwSize.X - 1; ! WriteRegion.Bottom = cb->Info.dwSize.Y - 1; ! if (!WriteConsoleOutput(g_hConOut, /* output handle */ ! cb->Buffer, /* our buffer */ ! cb->BufferSize, /* dimensions of our buffer */ ! BufferCoord,/* offset in our buffer */ ! )) /* region to restore */ { ! return FALSE; } } --- 2357,2375 */ if (cb->Buffer != NULL) { ! for (i = 0; i < cb->NumRegions; i++) { ! BufferCoord.X = cb->Regions[i].Left; ! BufferCoord.Y = cb->Regions[i].Top; ! WriteRegion = cb->Regions[i]; ! if (!WriteConsoleOutputW(g_hConOut, /* output handle */ ! cb->Buffer, /* our buffer */ ! cb->BufferSize, /* dimensions of our buffer */ ! BufferCoord,/* offset in our buffer */ ! )) /* region to restore */ ! { ! return FALSE; ! } } } *** ../vim-8.0.0904/src/version.c 2017-08-11 20:25:22.097565404 +0200 --- src/version.c 2017-08-11 20:36:00.028959853 +0200 *** *** 771,772 --- 771,774 { /* Add new patch number below this line */ + /**/ + 905, /**/ -- It is illegal to rob a bank and then shoot at the bank teller with a water pistol. [real standing law in Louisana, United States of America] /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\
Patch 8.0.0904
Patch 8.0.0904 Problem:Cannot set a location list from text. Solution: Add the "text" argument to setqflist(). (Yegappan Lakshmanan) Files: runtime/doc/eval.txt, src/quickfix.c, src/testdir/test_quickfix.vim *** ../vim-8.0.0903/runtime/doc/eval.txt2017-08-11 16:24:46.320283867 +0200 --- runtime/doc/eval.txt2017-08-11 20:07:27.485252468 +0200 *** *** 6973,6982 |winrestview()|. setqflist({list} [, {action}[, {what}]]) *setqflist()* ! Create or replace or add to the quickfix list using the items ! in {list}. Each item in {list} is a dictionary. ! Non-dictionary items in {list} are ignored. Each dictionary ! item can contain the following entries: bufnr buffer number; must be the number of a valid buffer --- 6973,6984 |winrestview()|. setqflist({list} [, {action}[, {what}]]) *setqflist()* ! Create or replace or add to the quickfix list. ! ! When {what} is not present, use the items in {list}. Each ! item must be a dictionary. Non-dictionary items in {list} are ! ignored. Each dictionary item can contain the following ! entries: bufnr buffer number; must be the number of a valid buffer *** *** 7028,7033 --- 7030,7039 argument is ignored. The following items can be specified in {what}: context any Vim type can be stored as a context + textuse 'errorformat' to extract items from the + text and add the resulting entries to the + quickfix list {nr}. The value can be a string + with one line or a list with multiple lines. items list of quickfix entries. Same as the {list} argument. nr list number in the quickfix stack; zero *** ../vim-8.0.0903/src/quickfix.c 2017-07-27 22:03:45.550703059 +0200 --- src/quickfix.c 2017-08-11 20:10:10.820097310 +0200 *** *** 4885,4891 } static int ! qf_set_properties(qf_info_T *qi, dict_T *what, int action) { dictitem_T*di; int retval = FAIL; --- 4885,4891 } static int ! qf_set_properties(qf_info_T *qi, dict_T *what, int action, char_u *title) { dictitem_T*di; int retval = FAIL; *** *** 4929,4935 if (newlist) { ! qf_new_list(qi, NULL); qf_idx = qi->qf_curlist; } --- 4929,4935 if (newlist) { ! qf_new_list(qi, title); qf_idx = qi->qf_curlist; } *** *** 4957,4962 --- 4957,4979 } } + if ((di = dict_find(what, (char_u *)"text", -1)) != NULL) + { + /* Only string and list values are supported */ + if ((di->di_tv.v_type == VAR_STRING && di->di_tv.vval.v_string != NULL) + || (di->di_tv.v_type == VAR_LIST +&& di->di_tv.vval.v_list != NULL)) + { + if (action == 'r') + qf_free_items(qi, qf_idx); + if (qf_init_ext(qi, qf_idx, NULL, NULL, >di_tv, p_efm, + FALSE, (linenr_T)0, (linenr_T)0, NULL, NULL) > 0) + retval = OK; + } + else + return FAIL; + } + if ((di = dict_find(what, (char_u *)"context", -1)) != NULL) { typval_T*ctx; *** *** 5070,5076 qf_free_stack(wp, qi); } else if (what != NULL) ! retval = qf_set_properties(qi, what, action); else retval = qf_add_entries(qi, qi->qf_curlist, list, title, action); --- 5087,5093 qf_free_stack(wp, qi); } else if (what != NULL) ! retval = qf_set_properties(qi, what, action, title); else retval = qf_add_entries(qi, qi->qf_curlist, list, title, action); *** ../vim-8.0.0903/src/testdir/test_quickfix.vim 2017-07-27 22:03:45.550703059 +0200 --- src/testdir/test_quickfix.vim 2017-08-11 20:11:19.535611302 +0200 *** *** 1862,1867 --- 1862,1872 let l = g:Xgetlist({'items':1}) call assert_equal(0, len(l.items)) + " The following used to crash Vim with address sanitizer + call g:Xsetlist([], 'f') + call g:Xsetlist([], 'a', {'items' : [{'filename':'F1', 'lnum':10}]}) + call assert_equal(10, g:Xgetlist({'items':1}).items[0].lnum) + " Save and restore the quickfix stack call g:Xsetlist([], 'f') call assert_equal(0, g:Xgetlist({'nr':'$'}).nr)
Patch 8.0.0903
Patch 8.0.0903 (after 8.0.0902) Problem:Early return from test function. Solution: Remove the return. Files: src/testdir/test_terminal.vim *** ../vim-8.0.0902/src/testdir/test_terminal.vim 2017-08-11 19:12:05.060966304 +0200 --- src/testdir/test_terminal.vim 2017-08-11 20:18:58.776339433 +0200 *** *** 266,272 endfunc func Test_finish_close() - return " TODO: use something that takes much less than a whole second echo 'This will take five seconds...' call assert_equal(1, winnr('$')) --- 266,271 *** ../vim-8.0.0902/src/version.c 2017-08-11 19:12:05.060966304 +0200 --- src/version.c 2017-08-11 20:19:49.023975493 +0200 *** *** 771,772 --- 771,774 { /* Add new patch number below this line */ + /**/ + 903, /**/ -- How do you know when you have run out of invisible ink? /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.0.0902
Patch 8.0.0902 Problem:Cannot specify directory or environment for a job. Solution: Add the "cwd" and "env" arguments to job options. (Yasuhiro Matsumoto, closes #1160) Files: runtime/doc/channel.txt, src/channel.c, src/terminal.c, src/os_unix.c, src/os_win32.c, src/structs.h, src/testdir/test_channel.vim, src/testdir/test_terminal.vim *** ../vim-8.0.0901/runtime/doc/channel.txt 2017-01-25 22:40:45.076782542 +0100 --- runtime/doc/channel.txt 2017-08-11 18:02:28.198366352 +0200 *** *** 1,4 ! *channel.txt* For Vim version 8.0. Last change: 2016 Oct 27 VIM REFERENCE MANUALby Bram Moolenaar --- 1,4 ! *channel.txt* For Vim version 8.0. Last change: 2017 Aug 11 VIM REFERENCE MANUALby Bram Moolenaar *** *** 375,381 == 6. Using a RAW or NL channel *channel-raw* ! If mode is RAW or NL then a message can be send like this: > let response = ch_evalraw(channel, {string}) The {string} is sent as-is. The response will be what can be read from the --- 375,381 == 6. Using a RAW or NL channel *channel-raw* ! If mode is RAW or NL then a message can be sent like this: > let response = ch_evalraw(channel, {string}) The {string} is sent as-is. The response will be what can be read from the *** *** 427,434 channels, an empty string for a RAW or NL channel. You can use |ch_canread()| to check if there is something to read. ! Note that when there is no callback message are dropped. To avoid that add a ! close callback to the channel. To read all output from a RAW channel that is available: > let output = ch_readraw(channel) --- 427,434 channels, an empty string for a RAW or NL channel. You can use |ch_canread()| to check if there is something to read. ! Note that when there is no callback, messages are dropped. To avoid that add ! a close callback to the channel. To read all output from a RAW channel that is available: > let output = ch_readraw(channel) *** *** 480,490 of a pipe causes the read end to get EOF). To avoid this make the job sleep for a short while before it exits. - Note that if the job exits before you read the output, the output may be lost. - This depends on the system (on Unix this happens because closing the write end - of a pipe causes the read end to get EOF). To avoid this make the job sleep - for a short while before it exits. - The handler defined for "out_cb" will not receive stderr. If you want to handle that separately, add an "err_cb" handler: > let job = job_start(command, {"out_cb": "MyHandler", --- 480,485 *** *** 494,499 --- 489,499 "callback" option: > let job = job_start(command, {"callback": "MyHandler"}) + Depending on the system, starting a job can put Vim in the background, the + started job gets the focus. To avoid that, use the `foreground()` function. + This might not always work when called early, put in the callback handler or + use a timer to call it after the job has started. + You can send a message to the command with ch_evalraw(). If the channel is in JSON or JS mode you can use ch_evalexpr(). *** *** 518,524 and "in_bot" options. A special mode is when "in_top" is set to zero and "in_bot" is not set: Every ! time a line is added to the buffer, the last-but-one line will be send to the job stdin. This allows for editing the last line and sending it when pressing Enter. *channel-close-in* --- 518,524 and "in_bot" options. A special mode is when "in_top" is set to zero and "in_bot" is not set: Every ! time a line is added to the buffer, the last-but-one line will be sent to the job stdin. This allows for editing the last line and sending it when pressing Enter. *channel-close-in* *** *** 549,555 To start another process without creating a channel: > let job = job_start(command, ! \ {"in_io": "null", "out_io": "null", "err_io": "null"}) This starts {command} in the background, Vim does not wait for it to finish. --- 549,555 To start another process without creating a channel: > let job = job_start(command, ! \ {"in_io": "null", "out_io": "null", "err_io": "null"}) This starts {command} in the background, Vim does not wait for it to finish. *** *** 610,620 *job-close_cb* "close_cb": handler Callback for when the channel is closed. Same as
Patch 8.0.0901
Patch 8.0.0901 Problem:Asan suppress file missing from distribution. Solution: Add the file. Files: Filelist *** ../vim-8.0.0900/Filelist2017-08-06 17:05:47.220142038 +0200 --- Filelist2017-08-11 17:13:55.959128511 +0200 *** *** 105,110 --- 105,111 src/testdir/Make_all.mak \ src/testdir/*.in \ src/testdir/*.py \ + src/testdir/lsan-suppress.txt \ src/testdir/sautest/autoload/*.vim \ src/testdir/runtest.vim \ src/testdir/shared.vim \ *** ../vim-8.0.0900/src/version.c 2017-08-11 17:12:47.919619862 +0200 --- src/version.c 2017-08-11 17:54:45.985618719 +0200 *** *** 771,772 --- 771,774 { /* Add new patch number below this line */ + /**/ + 901, /**/ -- Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke Any sufficiently advanced bug is indistinguishable from a feature. Rich Kulawiec /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.0.0900
Patch 8.0.0900 Problem::tab options doesn't open a new tab page. (Aviany) Solution: Support the :tab modifier. (closes #1960) Files: src/ex_cmds2.c, runtime/optwin.vim *** ../vim-8.0.0899/src/ex_cmds2.c 2017-08-03 22:44:51.042797694 +0200 --- src/ex_cmds2.c 2017-08-11 16:58:55.797634249 +0200 *** *** 3749,3754 --- 3749,3755 ex_options( exarg_T *eap UNUSED) { + vim_setenv((char_u *)"OPTWIN_CMD", (char_u *)(cmdmod.tab ? "tab" : "")); cmd_source((char_u *)SYS_OPTWIN_FILE, NULL); } #endif *** ../vim-8.0.0899/runtime/optwin.vim 2017-03-06 21:44:47.063429442 +0100 --- runtime/optwin.vim 2017-08-11 17:09:17.829138005 +0200 *** *** 1,20 " These commands create the option window. " " Maintainer: Bram Moolenaar! " Last Change:2017 Mar 06 " If there already is an option window, jump to that one. ! if bufwinnr("option-window") > 0 ! let s:thiswin = winnr() ! while 1 ! if @% == "option-window" finish endif ! wincmd w ! if s:thiswin == winnr() ! break ! endif ! endwhile endif " Make sure the '<' flag is not included in 'cpoptions', otherwise would --- 1,17 " These commands create the option window. " " Maintainer: Bram Moolenaar ! " Last Change:2017 Aug 11 " If there already is an option window, jump to that one. ! let buf = bufnr('option-window') ! if buf >= 0 ! let winids = win_findbuf(buf) ! if len(winids) > 0 ! if win_gotoid(winids[0]) == 1 finish endif ! endif endif " Make sure the '<' flag is not included in 'cpoptions', otherwise would *** *** 141,148 endif endwhile ! " Open the window ! new option-window setlocal ts=15 tw=0 noro buftype=nofile " Insert help and a "set" command for each option. --- 138,145 endif endwhile ! " Open the window. $OPTWIN_CMD is set to "tab" for ":tab options". ! exe $OPTWIN_CMD . ' new option-window' setlocal ts=15 tw=0 noro buftype=nofile " Insert help and a "set" command for each option. *** *** 506,511 --- 503,516 call append("$", "\t(local to window)") call BinOptionL("crb") endif + if has("terminal") + call append("$", "termsize\tsize of a terminal window") + call append("$", "\t(local to window)") + call OptionL("tms") + call append("$", "termkey\tkey that precedes Vim commands in a terminal window") + call append("$", "\t(local to window)") + call OptionL("tk") + endif call Header("multiple tab pages") *** *** 1296,1301 --- 1301,1308 if has("viminfo") call append("$", "viminfo\tlist that specifies what to write in the viminfo file") call OptionG("vi", ) + call append("$", "viminfofile\tfile name used for the viminfo file") + call OptionG("vif", ) endif if has("quickfix") call append("$", "bufhidden\twhat happens with a buffer when it's no longer in a window") *** ../vim-8.0.0899/src/version.c 2017-08-11 16:31:50.329234432 +0200 --- src/version.c 2017-08-11 17:10:32.500598249 +0200 *** *** 771,772 --- 771,774 { /* Add new patch number below this line */ + /**/ + 900, /**/ -- Men may not be seen publicly in any kind of strapless gown. [real standing law in Florida, United States of America] /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.0.0899
Patch 8.0.0899 Problem:Function name mch_stop_job() is confusing. Solution: Rename to mch_signal_job(). Files: src/channel.c, src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c, src/proto/os_win32.pro, src/terminal.c *** ../vim-8.0.0898/src/channel.c 2017-08-11 15:45:23.421118761 +0200 --- src/channel.c 2017-08-11 16:29:43.078150779 +0200 *** *** 4844,4850 for (job = first_job; job != NULL; job = job->jv_next) if (job->jv_status == JOB_STARTED && job->jv_stoponexit != NULL) ! mch_stop_job(job, job->jv_stoponexit); } /* --- 4844,4850 for (job = first_job; job != NULL; job = job->jv_next) if (job->jv_status == JOB_STARTED && job->jv_stoponexit != NULL) ! mch_signal_job(job, job->jv_stoponexit); } /* *** *** 5191,5197 return 0; } ch_log(job->jv_channel, "Stopping job with '%s'", (char *)arg); ! if (mch_stop_job(job, arg) == FAIL) return 0; /* Assume that only "kill" will kill the job. */ --- 5191,5197 return 0; } ch_log(job->jv_channel, "Stopping job with '%s'", (char *)arg); ! if (mch_signal_job(job, arg) == FAIL) return 0; /* Assume that only "kill" will kill the job. */ *** ../vim-8.0.0898/src/os_unix.c 2017-08-03 20:44:43.190297526 +0200 --- src/os_unix.c 2017-08-11 16:30:03.590003041 +0200 *** *** 5557,5563 * Return FAIL if "how" is not a valid name. */ int ! mch_stop_job(job_T *job, char_u *how) { int sig = -1; pid_t job_pid; --- 5557,5563 * Return FAIL if "how" is not a valid name. */ int ! mch_signal_job(job_T *job, char_u *how) { int sig = -1; pid_t job_pid; *** ../vim-8.0.0898/src/proto/os_unix.pro 2017-08-03 20:44:43.190297526 +0200 --- src/proto/os_unix.pro 2017-08-11 16:30:54.005639968 +0200 *** *** 63,69 void mch_job_start(char **argv, job_T *job, jobopt_T *options); char *mch_job_status(job_T *job); job_T *mch_detect_ended_job(job_T *job_list); ! int mch_stop_job(job_T *job, char_u *how); void mch_clear_job(job_T *job); void mch_breakcheck(int force); int mch_expandpath(garray_T *gap, char_u *path, int flags); --- 63,69 void mch_job_start(char **argv, job_T *job, jobopt_T *options); char *mch_job_status(job_T *job); job_T *mch_detect_ended_job(job_T *job_list); ! int mch_signal_job(job_T *job, char_u *how); void mch_clear_job(job_T *job); void mch_breakcheck(int force); int mch_expandpath(garray_T *gap, char_u *path, int flags); *** ../vim-8.0.0898/src/os_win32.c 2017-08-07 21:17:53.115100890 +0200 --- src/os_win32.c 2017-08-11 16:30:07.373975788 +0200 *** *** 5248,5254 * Return FAIL if it didn't work. */ int ! mch_stop_job(job_T *job, char_u *how) { int ret; --- 5248,5254 * Return FAIL if it didn't work. */ int ! mch_signal_job(job_T *job, char_u *how) { int ret; *** ../vim-8.0.0898/src/proto/os_win32.pro 2017-08-03 20:44:43.190297526 +0200 --- src/proto/os_win32.pro 2017-08-11 16:30:25.101848113 +0200 *** *** 45,51 void mch_job_start(char *cmd, job_T *job, jobopt_T *options); char *mch_job_status(job_T *job); job_T *mch_detect_ended_job(job_T *job_list); ! int mch_stop_job(job_T *job, char_u *how); void mch_clear_job(job_T *job); void mch_set_normal_colors(void); void mch_write(char_u *s, int len); --- 45,51 void mch_job_start(char *cmd, job_T *job, jobopt_T *options); char *mch_job_status(job_T *job); job_T *mch_detect_ended_job(job_T *job_list); ! int mch_signal_job(job_T *job, char_u *how); void mch_clear_job(job_T *job); void mch_set_normal_colors(void); void mch_write(char_u *s, int len); *** ../vim-8.0.0898/src/terminal.c 2017-08-11 16:24:46.312283924 +0200 --- src/terminal.c 2017-08-11 16:30:37.157761291 +0200 *** *** 1143,1149 /* We don't know if the job can handle CTRL-C itself or not, this * may kill the shell instead of killing the command running in the * shell. */ ! mch_stop_job(curbuf->b_term->tl_job, (char_u *)"quit"); #endif if (c == (termkey == 0 ? Ctrl_W : termkey) || c == Ctrl_BSL) --- 1143,1149 /* We don't know if the job can handle CTRL-C itself or not, this * may kill the shell instead of killing the command running in the * shell. */ ! mch_signal_job(curbuf->b_term->tl_job, (char_u *)"quit"); #endif if (c == (termkey == 0 ? Ctrl_W : termkey) || c == Ctrl_BSL) *** *** 2735,2741 break; } if (part < PART_COUNT && mch_report_winsize(fd, rows, cols) == OK) ! mch_stop_job(term->tl_job, (char_u *)"winch"); } } --- 2735,2741
Patch 8.0.0898
Patch 8.0.0898 Problem:Can't use the alternate screen in a terminal window. Solution: Initialze the alternate screen. (Yasuhiro Matsumoto, closes #1957) Add term_getaltscreen(). Files: src/libvterm/include/vterm.h, src/terminal.c, src/proto/terminal.pro, src/evalfunc.c, runtime/doc/eval.txt *** ../vim-8.0.0897/src/libvterm/include/vterm.h2017-07-28 17:04:11.778241455 +0200 --- src/libvterm/include/vterm.h2017-08-11 16:07:12.671839872 +0200 *** *** 188,193 --- 188,195 void vterm_keyboard_end_paste(VTerm *vt); void vterm_mouse_move(VTerm *vt, int row, int col, VTermModifier mod); + /* "button" is 1 for left, 2 for middle, 3 for right. + * Button 4 is scroll wheel down, button 5 is scroll wheel up. */ void vterm_mouse_button(VTerm *vt, int button, int pressed, VTermModifier mod); /* *** *** 302,307 --- 304,312 int (*settermprop)(VTermProp prop, VTermValue *val, void *user); int (*bell)(void *user); int (*resize)(int rows, int cols, void *user); + /* A line was pushed off the top of the window. +* "cells[cols]" contains the cells of that line. +* Return value is unused. */ int (*sb_pushline)(int cols, const VTermScreenCell *cells, void *user); int (*sb_popline)(int cols, VTermScreenCell *cells, void *user); } VTermScreenCallbacks; *** *** 320,325 --- 325,333 void vterm_screen_set_unrecognised_fallbacks(VTermScreen *screen, const VTermParserCallbacks *fallbacks, void *user); void *vterm_screen_get_unrecognised_fbdata(VTermScreen *screen); + /* Enable support for using the alternate screen if "altscreen" is non-zero. + * Before that switching to the alternate screen won't work. + * Calling with "altscreen" zero has no effect. */ void vterm_screen_enable_altscreen(VTermScreen *screen, int altscreen); typedef enum { *** ../vim-8.0.0897/src/terminal.c 2017-08-10 23:15:15.002851689 +0200 --- src/terminal.c 2017-08-11 16:10:21.878500160 +0200 *** *** 146,151 --- 146,153 VTermPos tl_cursor_pos; int tl_cursor_visible; + + int tl_using_altscreen; }; #define TMODE_ONCE 1 /* CTRL-\ CTRL-N used */ *** *** 1316,1321 --- 1318,1328 out_flush(); break; + case VTERM_PROP_ALTSCREEN: + /* TODO: do anything else? */ + term->tl_using_altscreen = value->boolean; + break; + default: break; } *** *** 1865,1870 --- 1872,1880 /* Required to initialize most things. */ vterm_screen_reset(screen, 1 /* hard */); + + /* Allow using alternate screen. */ + vterm_screen_enable_altscreen(screen, 1); } /* *** *** 1939,1944 --- 1949,1967 } /* + * "term_getaltscreen(buf)" function + */ + void + f_term_getaltscreen(typval_T *argvars, typval_T *rettv) + { + buf_T *buf = term_get_buf(argvars); + + if (buf == NULL) + return; + rettv->vval.v_number = buf->b_term->tl_using_altscreen; + } + + /* * "term_getattr(attr, name)" function */ void *** ../vim-8.0.0897/src/proto/terminal.pro 2017-08-08 23:06:40.850032268 +0200 --- src/proto/terminal.pro 2017-08-11 16:10:25.966470715 +0200 *** *** 17,22 --- 17,23 int term_get_attr(buf_T *buf, linenr_T lnum, int col); char_u *term_get_status_text(term_T *term); int set_ref_in_term(int copyID); + void f_term_getaltscreen(typval_T *argvars, typval_T *rettv); void f_term_getattr(typval_T *argvars, typval_T *rettv); void f_term_getcursor(typval_T *argvars, typval_T *rettv); void f_term_getjob(typval_T *argvars, typval_T *rettv); *** ../vim-8.0.0897/src/evalfunc.c 2017-08-08 23:06:40.854032239 +0200 --- src/evalfunc.c 2017-08-11 16:10:47.630314685 +0200 *** *** 831,836 --- 831,837 #endif {"tempname", 0, 0, f_tempname}, #ifdef FEAT_TERMINAL + {"term_getaltscreen", 1, 1, f_term_getaltscreen}, {"term_getattr", 2, 2, f_term_getattr}, {"term_getcursor",1, 1, f_term_getcursor}, {"term_getjob", 1, 1, f_term_getjob}, *** ../vim-8.0.0897/runtime/doc/eval.txt2017-08-10 23:15:14.998851718 +0200 --- runtime/doc/eval.txt2017-08-11 16:12:49.601436457 +0200 *** *** 1,4 ! *eval.txt*For Vim version 8.0. Last change: 2016 Nov 04 VIM REFERENCE MANUALby Bram Moolenaar --- 1,4 ! *eval.txt*For Vim version 8.0. Last change: 2017 Aug 11 VIM REFERENCE MANUALby Bram Moolenaar *** *** 1815,1821 hit-enter prompt. *v:servername* *servername-variable* ! v:servername The resulting registered |x11-clientserver| name if any.
Patch 8.0.0897
Patch 8.0.0897 (after 8.0.0896) Problem:Wrong error message for invalid term_finish value Solution: Pass the right argument to emsg(). Files: src/channel.c *** ../vim-8.0.0896/src/channel.c 2017-08-10 23:15:15.002851689 +0200 --- src/channel.c 2017-08-11 15:42:05.814521786 +0200 *** *** 4426,4432 val = get_tv_string(item); if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0) { ! EMSG2(_(e_invarg2), "drop"); return FAIL; } opt->jo_set2 |= JO2_TERM_FINISH; --- 4426,4432 val = get_tv_string(item); if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0) { ! EMSG2(_(e_invarg2), val); return FAIL; } opt->jo_set2 |= JO2_TERM_FINISH; *** ../vim-8.0.0896/src/version.c 2017-08-10 23:15:15.002851689 +0200 --- src/version.c 2017-08-11 15:45:16.361168875 +0200 *** *** 771,772 --- 771,774 { /* Add new patch number below this line */ + /**/ + 897, /**/ -- It is illegal for anyone to try and stop a child from playfully jumping over puddles of water. [real standing law in California, United States of America] /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [vim/vim] Broken syntax in tex when defining custom math column type (#984)
On Wednesday, 14 December 2016 10:43:05 UTC, Anselm Haak wrote: > I just had the same problem as Bart Baker. When adding tabularx, the given > example produces the error (and can be compiled): > > ### Minimal working example > > ```tex > \documentclass{scrartcl} > > \usepackage{tabularx} > > \begin{document} > > \newcolumntype{L}{>{$}c<{$}} > > This text is highlighted as if it was in mathmode, probably due to the wrong > nesting of curly brackets and dollar signs within the newcolumntype command. > > \end{document} > ``` Hi, I also encountered this issue using the array package and defining a new column type as follows: \newcolumntype{C}[1]{>{\hfil$} p{#1} <{$\hfil}} I found a workaround, though. If you use the LaTeX syntax for inline math environment \( ... \) instead of $ ... $ then the syntax highlighting for the document that follows is correct, i.e. \newcolumntype{C}[1]{>{\hfil\(} p{#1} <{\)\hfil}} Hope this helps! James -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.