Patch 8.2.0029

2019-12-21 Fir de Conversatie Bram Moolenaar


Patch 8.2.0029
Problem:MS-Windows: crash with empty job command.
Solution:   Check for NULL result. (Yasuhiro Matsumoto, closes #5390)
Files:  src/channel.c, src/testdir/test_channel.vim


*** ../vim-8.2.0028/src/channel.c   2019-11-30 20:46:46.0 +0100
--- src/channel.c   2019-12-21 22:19:40.048698371 +0100
***
*** 5947,5952 
--- 5947,5957 
if (win32_build_cmd(l, &ga) == FAIL)
goto theend;
cmd = ga.ga_data;
+   if (cmd == NULL)
+   {
+   emsg(_(e_invarg));
+   goto theend;
+   }
  #endif
  }
  
*** ../vim-8.2.0028/src/testdir/test_channel.vim2019-12-07 
17:09:24.0 +0100
--- src/testdir/test_channel.vim2019-12-21 22:17:28.745122184 +0100
***
*** 1331,1344 
  endfunc
  
  func Test_close_handle()
-   call ch_log('Test_close_handle()')
call s:run_server('Ch_close_handle')
  endfunc
  
  ""
  
  func Test_open_fail()
-   call ch_log('Test_open_fail()')
silent! let ch = ch_open("noserver")
echo ch
let d = ch
--- 1331,1342 
***
*** 1360,1366 
  endfunc
  
  func Test_open_delay()
-   call ch_log('Test_open_delay()')
" The server will wait half a second before creating the port.
call s:run_server('Ch_open_delay', 'delay')
  endfunc
--- 1358,1363 
***
*** 1384,1390 
  endfunc
  
  func Test_call()
-   call ch_log('Test_call()')
call s:run_server('Ch_test_call')
  endfunc
  
--- 1381,1386 
***
*** 1473,1479 
  endfunc
  
  func Test_close_callback()
-   call ch_log('Test_close_callback()')
call s:run_server('Ch_test_close_callback')
  endfunc
  
--- 1469,1474 
***
*** 1495,1501 
  endfunc
  
  func Test_close_partial()
-   call ch_log('Test_close_partial()')
call s:run_server('Ch_test_close_partial')
  endfunc
  
--- 1490,1495 
***
*** 1712,1718 
  endfunc
  
  func Test_close_lambda()
-   call ch_log('Test_close_lambda()')
call s:run_server('Ch_test_close_lambda')
  endfunc
  
--- 1706,1711 
***
*** 1965,1970 
--- 1958,1969 
endtry
  endfunc
  
+ func Test_empty_job()
+   " This was crashing on MS-Windows.
+   let job = job_start([""])
+   call WaitForAssert({-> assert_equal("dead", job_status(job))})
+ endfunc
+ 
  " Do this last, it stops any channel log.
  func Test_zz_ch_log()
call ch_logfile('Xlog', 'w')
*** ../vim-8.2.0028/src/version.c   2019-12-21 22:00:46.300138235 +0100
--- src/version.c   2019-12-21 22:19:06.664806417 +0100
***
*** 744,745 
--- 744,747 
  {   /* Add new patch number below this line */
+ /**/
+ 29,
  /**/

-- 
Not too long ago, compress was something you did to garbage...

 /// 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/201912212122.xBLLMtco018040%40masaka.moolenaar.net.


Patch 8.2.0028

2019-12-21 Fir de Conversatie Bram Moolenaar


Patch 8.2.0028
Problem:Searchpairpos() is not tested.
Solution:   Add tests.  Also improve searchpair() testing. (Dominique Pelle,
closes #5388)
Files:  src/testdir/test_search.vim


*** ../vim-8.2.0027/src/testdir/test_search.vim 2019-11-23 21:36:57.0 
+0100
--- src/testdir/test_search.vim 2019-12-21 21:56:45.548722712 +0100
***
*** 57,63 
call feedkeys("/the".repeat("\", 6)."\", 'tx')
call assert_equal('  8 them', getline('.'))
:1
!   " eigth match
call feedkeys("/the".repeat("\", 7)."\", 'tx')
call assert_equal('  9 these', getline('.'))
:1
--- 57,63 
call feedkeys("/the".repeat("\", 6)."\", 'tx')
call assert_equal('  8 them', getline('.'))
:1
!   " eighth match
call feedkeys("/the".repeat("\", 7)."\", 'tx')
call assert_equal('  9 these', getline('.'))
:1
***
*** 99,105 
call feedkeys("/the".repeat("\", 6)."\", 'tx')
call assert_equal('  8 them', getline('.'))
:1
!   " eigth match
call feedkeys("/the".repeat("\", 7)."\", 'tx')
call assert_equal('  9 these', getline('.'))
:1
--- 99,105 
call feedkeys("/the".repeat("\", 6)."\", 'tx')
call assert_equal('  8 them', getline('.'))
:1
!   " eighth match
call feedkeys("/the".repeat("\", 7)."\", 'tx')
call assert_equal('  9 these', getline('.'))
:1
***
*** 290,304 
  
  func Test_searchpair()
new
!   call setline(1, ['other code here', '', '[', '" cursor here', ']'])
4
!   let a = searchpair('\[','',']','bW')
!   call assert_equal(3, a)
set nomagic
4
!   let a = searchpair('\[','',']','bW')
!   call assert_equal(3, a)
set magic
q!
  endfunc
  
--- 290,373 
  
  func Test_searchpair()
new
!   call setline(1, ['other code', 'here [', ' [', ' " cursor here', ' ]]'])
! 
!   4
!   call assert_equal(3, searchpair('\[', '', ']', 'bW'))
!   call assert_equal([0, 3, 2, 0], getpos('.'))
!   4
!   call assert_equal(2, searchpair('\[', '', ']', 'bWr'))
!   call assert_equal([0, 2, 6, 0], getpos('.'))
!   4
!   call assert_equal(1, searchpair('\[', '', ']', 'bWm'))
!   call assert_equal([0, 3, 2, 0], getpos('.'))
!   4|norm ^
!   call assert_equal(5, searchpair('\[', '', ']', 'Wn'))
!   call assert_equal([0, 4, 2, 0], getpos('.'))
!   4
!   call assert_equal(2, searchpair('\[', '', ']', 'bW',
! \ 'getline(".") =~ "^\\s*\["'))
!   call assert_equal([0, 2, 6, 0], getpos('.'))
!   set nomagic
!   4
!   call assert_equal(3, searchpair('\[', '', ']', 'bW'))
!   call assert_equal([0, 3, 2, 0], getpos('.'))
!   set magic
!   4|norm ^
!   call assert_equal(0, searchpair('{', '', '}', 'bW'))
!   call assert_equal([0, 4, 2, 0], getpos('.'))
! 
!   %d
!   call setline(1, ['if 1', '  if 2', '  else', '  endif 2', 'endif 1'])
! 
!   /\', '\', '\', 'W'))
!   call assert_equal([0, 5, 1, 0], getpos('.'))
!   /\', '\', '\', 'W'))
!   call assert_equal([0, 3, 3, 0], getpos('.'))
! 
!   q!
! endfunc
! 
! func Test_searchpairpos()
!   new
!   call setline(1, ['other code', 'here [', ' [', ' " cursor here', ' ]]'])
! 
!   4
!   call assert_equal([3, 2], searchpairpos('\[', '', ']', 'bW'))
!   call assert_equal([0, 3, 2, 0], getpos('.'))
4
!   call assert_equal([2, 6], searchpairpos('\[', '', ']', 'bWr'))
!   call assert_equal([0, 2, 6, 0], getpos('.'))
!   4|norm ^
!   call assert_equal([5, 2], searchpairpos('\[', '', ']', 'Wn'))
!   call assert_equal([0, 4, 2, 0], getpos('.'))
!   4
!   call assert_equal([2, 6], searchpairpos('\[', '', ']', 'bW',
! \ 'getline(".") =~ "^\\s*\["'))
!   call assert_equal([0, 2, 6, 0], getpos('.'))
!   4
!   call assert_equal([2, 6], searchpairpos('\[', '', ']', 'bWr'))
!   call assert_equal([0, 2, 6, 0], getpos('.'))
set nomagic
4
!   call assert_equal([3, 2], searchpairpos('\[', '', ']', 'bW'))
!   call assert_equal([0, 3, 2, 0], getpos('.'))
set magic
+   4|norm ^
+   call assert_equal([0, 0], searchpairpos('{', '', '}', 'bW'))
+   call assert_equal([0, 4, 2, 0], getpos('.'))
+ 
+   %d
+   call setline(1, ['if 1', '  if 2', '  else', '  endif 2', 'endif 1'])
+   /\', '\', '\', 
'W'))
+   call assert_equal([0, 5, 1, 0], getpos('.'))
+   /\', '\', '\', 
'W'))
+   call assert_equal([0, 3, 3, 0], getpos('.'))
+ 
q!
  endfunc
  
***
*** 310,323 
call assert_fails("call searchpair('start', 'middle', 'end', 'bW', 0, 99, 
100)", 'E475: Invalid argument: 0')
call assert_fails("call searchpair('start', 'middle', 'end', 'bW', 'func', 
-99, 100)", 'E475: Invalid argument: -99')
call assert_fails("call searchpair('start', 'middle', 'end', 'bW', 'func', 
99, -100)", 'E475: Invalid argument: -100')
  endfunc
  
  func Test_searchpair_skip()
  func Zero()
!   return 0
  endfunc
  func Partial(x)
!   return a:x
  endfunc
  new
  call setline(1, ['{', 'foo', 'foo', 'foo', '}'])
--- 379,406 
call assert_fails("cal

Re: Vim 8.2 is released!

2019-12-21 Fir de Conversatie Bram Moolenaar


Andy Massimino wrote:

> On 12/21/19 9:11 AM, Bram Moolenaar wrote:
> > Ken Takata wrote:
> >
> >> I found a missing feature which should have been added in the
> >> *new-vimscript-8.2* section in the version8.txt.
> >>
> >> |optional-function-argument| was added in 8.1.1310.
> >>
> >> It's too late for the release notes, but it might be better to update
> >> version8.txt.
> > Yes, that's actually a nice addition.  I'll add a rmark.
> >
> >> I also found a typo:
> >>
> >> --- a/runtime/doc/version8.txt
> >> +++ b/runtime/doc/version8.txt
> >> @@ -25897,7 +25897,7 @@ Makefiles for old Amiga compilers were r
> >>   If a swap file is found without any changes it is automatically deleted.
> >>   
> >>   The FEAT_TAG_OLDSTATIC code was removed, it slowed down tag searches.
> >> -The FEAT_TAG_ANYWHITE code was removed, is was not enabled in any build.
> >> +The FEAT_TAG_ANYWHITE code was removed, it was not enabled in any build.
> >>   The UNICODE16 code was removed, it was not useful.
> >>   Workshop support was removed, nobody was using it.
> >>   The Aap build files were removed, they were outdated.
> > I'll fix that.
>
> Some or most of runtime/doc/debugger.txt seems outdated after removal of 
> Workshop support.

Most of it was already removed.  I'll make it a bit more clearer that
Workshop support itself was removed.  But the features added for it
still exist.

-- 
I have to exercise early in the morning before my brain
figures out what I'm doing.

 /// 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/201912212101.xBLL1VnC013820%40masaka.moolenaar.net.


E216: No such group or event: filetypedetect *

2019-12-21 Fir de Conversatie M Kelly
Hi,

I sometimes get this -

E216: No such group or event: filetypedetect *

after an lopen from a plugin.  If I remove/comment out the -

silent! au! filetypedetect *

from /usr/local/share/vim/vim82/ftopen.vim

then after many attempts so far I do not see this exception.

Anyone know 1) how I can debug to see who is throwing this ? and 2). does 
this mean the silent! isn't working, or should it just have a try/catch 
around it ?
Or perhaps just add a bogus autogroup so the au! doesn't throw ?
Any suggestions ?

thx for everything vim,
-m

-- 
-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/5d59d70e-459e-404a-ac20-336e91e602e8%40googlegroups.com.


Re: Vim 8.2 is released!

2019-12-21 Fir de Conversatie Andy Massimino

On 12/21/19 9:11 AM, Bram Moolenaar wrote:

Ken Takata wrote:


I found a missing feature which should have been added in the
*new-vimscript-8.2* section in the version8.txt.

|optional-function-argument| was added in 8.1.1310.

It's too late for the release notes, but it might be better to update
version8.txt.

Yes, that's actually a nice addition.  I'll add a rmark.


I also found a typo:

--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -25897,7 +25897,7 @@ Makefiles for old Amiga compilers were r
  If a swap file is found without any changes it is automatically deleted.
  
  The FEAT_TAG_OLDSTATIC code was removed, it slowed down tag searches.

-The FEAT_TAG_ANYWHITE code was removed, is was not enabled in any build.
+The FEAT_TAG_ANYWHITE code was removed, it was not enabled in any build.
  The UNICODE16 code was removed, it was not useful.
  Workshop support was removed, nobody was using it.
  The Aap build files were removed, they were outdated.

I'll fix that.

Some or most of runtime/doc/debugger.txt seems outdated after removal of 
Workshop support.


--
--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/2ae470a2-f195-393e-7250-5a744bfe7e60%40gmail.com.


Re: So, how about Vim 9?

2019-12-21 Fir de Conversatie Ben Jackson
Bram, if you're going to be a doing a fair amount of work on the vimscript 
side of things, one thing I would like to request is to have a mind towards 
being able to support a full-on vimscript debugger. I realise there is a 
built-in debugging mode, but it would be exceptionally cool to be able to 
implement a Debug Adapter Protocol 
 server within vim, so 
that something like Vimspector  
could 
be used to debug plugin code externally.

Obviously doesn't have to be done right away, but having it as a medium 
term goal would be great. As always, happy to contribute.


On Tuesday, December 17, 2019 at 4:49:16 PM UTC, Bram Moolenaar wrote:
>
>
> Vim 8.2 has been released, so what is next? 
>
>
> 1. FASTER VIM SCRIPT 
>
> The third item on the poll results of 2018, after popup windows and text 
> properties, is faster Vim script.  So how do we do that? 
>
> I have been throwing some ideas around, and soon came to the conclusion 
> that the current way functions are called and executed, with 
> dictionaries for the arguments and local variables, is never going to be 
> very fast.  We're lucky if we can make it twice as fast.  The overhead 
> of a function call and executing every line is just too high. 
>
> So what then?  We can only make something fast by having a new way of 
> defining a function, with similar but different properties of the old 
> way: 
> - Arguments are only available by name, not through the a: dictionary or 
>   the a:000 list. 
> - Local variables are not available in an l: dictionary. 
> - A few more things that slow us down, such as exception handling details. 
>
> I Implemented a "proof of concept" and measured the time to run a simple 
> for loop with an addition (Justin used this example in his presentation, 
> code is below): 
>
> Vim old function: 5.018541 
> Python:   0.369598 
> Lua:  0.078817 
> Vim new function: 0.073595 
>
> That looks very hopeful!  It's just one example, but it shows how much 
> we can gain, and also that Vim script can be faster than builtin 
> interfaces. 
>
> How does this work?  The function is first compiled into a sequence of 
> instructions.  Each instruction has one or two parameters and a stack is 
> used to store intermediate results.  Local variables are also on the 
> stack, space is reserved during compilation.  This is a fairly normal 
> way of compilation into an intermediate format, specialized for Vim, 
> e.g. each stack item is a typeval_T.  And one of the instructions is 
> "execute Ex command", for commands that are not compiled. 
>
>
> 2. PHASING OUT INTERFACES 
>
> Attempts have been made to implement functionality with built-in script 
> languages such as Python, Perl, Lua, Tcl and Ruby.  This never gained much 
> foothold, for various reasons. 
>
> Instead of using script language support in Vim: 
> - Encourage implementing external tools in any language and communicate 
>   with them.  The job and channel support already makes this possible. 
>   Really any language can be used, also Java and Go, which are not 
>   available built-in. 
> - Phase out the built-in language interfaces, make maintenance a bit 
> easier 
>   and executables easier to build.  They will be kept for backwards 
>   compatibility, no new features. 
> - Improve the Vim script language, so that it can be used when an 
>   external tool is undesired. 
>
> All together this creates a clear situation: Vim with the +eval feature 
> will be sufficient for most plugins, while some plugins require 
> installing a tool that can be written in any language.  No confusion 
> about having Vim but the plugin not working because some specific 
> language is missing.  This is a good long term goal. 
>
> Rationale: Why is it easier to run a tool separately from Vim than using a 
> built-in interface and interpreter?  Take for example something that is 
> written in Python: 
> - The built-in interface uses the embedded python interpreter.  This is 
> less 
>   well maintained than the python command.  Building Vim with it requires 
>   installing developer packages.  If loaded dynamically there can be a 
> version 
>   mismatch. 
> - When running the tool externally the standard python command can be 
> used, 
>   which is quite often available by default or can be easily installed. 
> - A .py file can be compiled into a .pyc file and execute much faster. 
> - Inside Vim multi-threading can cause problems, since the Vim core is 
> single 
>   threaded.  In an external tool there are no such problems. 
> - The Vim part is written in .vim files, the Python part is in .py files, 
> this 
>   is nicely separated. 
> - Disadvantage: An interface needs to be made between Vim and Python. 
>   JSON is available for this, and it's fairly easy to use.  But it still 
>   requires implementing asynchronous communication. 
>
>
> 3. BETTER VIM SCRIPT 
>
> To make Vim faster

Patch 8.2.0027

2019-12-21 Fir de Conversatie Bram Moolenaar


Patch 8.2.0027
Problem:Still some /* */ comments.
Solution:   Convert to // comments.
Files:  src/iid_ole.c, src/indent.c, src/insexpand.c, src/iscygpty.c,
src/version.c


*** ../vim-8.2.0026/src/iid_ole.c   2010-05-15 13:04:07.0 +0200
--- src/iid_ole.c   2019-12-21 18:35:23.163418078 +0100
***
*** 1,16 
! /* this file contains the actual definitions of */
! /* the IIDs and CLSIDs */
  
! /* link this file in with the server and any clients */
  
  
! /* File created by MIDL compiler version 3.00.44 */
! /* at Sat Jan 03 16:34:55 1998
!  */
! /* Compiler settings for if_ole.idl:
! Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
! error checks: none
! */
  //@@MIDL_FILE_HEADING(  )
  #ifdef __cplusplus
  extern "C"{
--- 1,14 
! // this file contains the actual definitions of
! // the IIDs and CLSIDs
  
! // link this file in with the server and any clients
  
  
! // File created by MIDL compiler version 3.00.44
! // at Sat Jan 03 16:34:55 1998
! // Compiler settings for if_ole.idl:
! // Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
! // error checks: none
  //@@MIDL_FILE_HEADING(  )
  #ifdef __cplusplus
  extern "C"{
***
*** 20,27 
  # include 
  
  # if __W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION < 10
!/* This define is missing from older MingW versions of w32api, even though
! * IID is defined. */
  #  define __IID_DEFINED__
  # endif
  #endif
--- 18,25 
  # include 
  
  # if __W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION < 10
!// This define is missing from older MingW versions of w32api, even though
!// IID is defined.
  #  define __IID_DEFINED__
  # endif
  #endif
*** ../vim-8.2.0026/src/indent.c2019-11-30 22:40:44.0 +0100
--- src/indent.c2019-12-21 18:30:42.948514640 +0100
***
*** 1534,1558 
  long  len;
  long  col;
  long  vcol;
! long  start_col = 0;  /* For start of white-space string */
! long  start_vcol = 0; /* For start of white-space string */
  long  old_len;
  char_u*ptr;
! char_u*new_line = (char_u *)1;/* init to non-NULL */
! int   did_undo;   /* called u_save for current 
line */
  #ifdef FEAT_VARTABS
  int   *new_vts_array = NULL;
! char_u*new_ts_str;/* string value of tab argument */
  #else
  int   temp;
  int   new_ts;
  #endif
  int   save_list;
! linenr_T  first_line = 0; /* first changed line */
! linenr_T  last_line = 0;  /* last changed line */
  
  save_list = curwin->w_p_list;
! curwin->w_p_list = 0; /* don't want list mode here */
  
  #ifdef FEAT_VARTABS
  new_ts_str = eap->arg;
--- 1534,1558 
  long  len;
  long  col;
  long  vcol;
! long  start_col = 0;  // For start of white-space string
! long  start_vcol = 0; // For start of white-space string
  long  old_len;
  char_u*ptr;
! char_u*new_line = (char_u *)1; // init to non-NULL
! int   did_undo;   // called u_save for current 
line
  #ifdef FEAT_VARTABS
  int   *new_vts_array = NULL;
! char_u*new_ts_str;// string value of tab argument
  #else
  int   temp;
  int   new_ts;
  #endif
  int   save_list;
! linenr_T  first_line = 0; // first changed line
! linenr_T  last_line = 0;  // last changed line
  
  save_list = curwin->w_p_list;
! curwin->w_p_list = 0; // don't want list mode here
  
  #ifdef FEAT_VARTABS
  new_ts_str = eap->arg;
***
*** 1593,1599 
{
if (!got_tab && num_spaces == 0)
{
!   /* First consecutive white-space */
start_vcol = vcol;
start_col = col;
}
--- 1593,1599 
{
if (!got_tab && num_spaces == 0)
{
!   // First consecutive white-space
start_vcol = vcol;
start_col = col;
}
***
*** 1606,1614 
{
if (got_tab || (eap->forceit && num_spaces > 1))
{
!   /* Retabulate this string of white-space */
  
!   /* len is virtual length of white string */
len = num_spaces = vcol - start_vcol;
num_tabs = 0;
if (!curbuf->b_p_et)
--- 1606,1614 
{
if (got_tab || (eap->forceit && num_spaces > 1))
{
!   // Retabulate this string of white-space
  
!   // len is virtual length of white string
len = num_

Re: Vim 8.2 is released!

2019-12-21 Fir de Conversatie Bram Moolenaar


Ken Takata wrote:

> I found a missing feature which should have been added in the
> *new-vimscript-8.2* section in the version8.txt.
> 
> |optional-function-argument| was added in 8.1.1310.
> 
> It's too late for the release notes, but it might be better to update
> version8.txt.

Yes, that's actually a nice addition.  I'll add a rmark.

> I also found a typo:
> 
> --- a/runtime/doc/version8.txt
> +++ b/runtime/doc/version8.txt
> @@ -25897,7 +25897,7 @@ Makefiles for old Amiga compilers were r
>  If a swap file is found without any changes it is automatically deleted.
>  
>  The FEAT_TAG_OLDSTATIC code was removed, it slowed down tag searches.
> -The FEAT_TAG_ANYWHITE code was removed, is was not enabled in any build.
> +The FEAT_TAG_ANYWHITE code was removed, it was not enabled in any build.
>  The UNICODE16 code was removed, it was not useful.
>  Workshop support was removed, nobody was using it.
>  The Aap build files were removed, they were outdated.

I'll fix that.

-- 
Q:  Why do ducks have flat feet?
A:  To stamp out forest fires.

Q:  Why do elephants have flat feet?
A:  To stamp out flaming ducks.

 /// 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/201912211411.xBLEBd2g026571%40masaka.moolenaar.net.


Vim 8.2 is released!

2019-12-21 Fir de Conversatie Wei Zhang
Thanks Bram,without your effort these amazing features may not be possible。

-- 
-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/3f01aad2-df8e-453d-94b6-4dff684477c7%40googlegroups.com.