Re: [patch] Build error occurred with --with-features=small --enable-gui=gnome2 on Fedora

2017-01-08 Fir de Conversatie h_east
Hi Kazunobu,

2017-1-9(Mon) 15:53:36 UTC+9 Kazunobu Kuriyama:
> 2017-01-09 12:27 GMT+09:00 h_east :
> 
> 
> Hi Bram and list,
> 
> 
> 
> A build error has occurred with the following configure on Fedora 23.
> 
> 
> 
> $ make distclean
> 
> $ ./configure --with-features=small --enable-gui=gnome2 
> --enable-fail-if-missing
> 
> $ make
> 
> 
> 
> In file included from gui_gtk.c:34:0:
> 
> /usr/include/libintl.h:61:14: error: expected identifier or '(' before 
> 'unsigned'
> 
>  extern char *ngettext (const char *__msgid1, const char *__msgid2,
> 
>               ^
> 
> vim.h:606:35: error: expected ')' before '==' token
> 
>  # define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
> 
>                                    ^
> 
> vim.h:606:41: error: expected ')' before '?' token
> 
>  # define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
> 
>                                          ^
> 
> Makefile:2971: recipe for target 'objects/gui_gtk.o' failed
> 
> make[1]: *** [objects/gui_gtk.o] Error 1
> 
> make[1]: Leaving directory '/home/h_east/samba/github/vim/src'
> 
> Makefile:26: recipe for target 'first' failed
> 
> make: *** [first] Error 2
> 
> 
> 
> 
> 
> I wrote a patch.  But I don't know this patch is correct...
> 
> 
> 
> I'm afraid the proposed patch is a sort of overkill, because FEAT_GUI_GTK is 
> broader than FEAT_GUI_GNOME.
> 
> 
> So, let me explain another way to fix the issue.  
> 
> 
> With the small build, FEAT_GETTEXT is kept undefined (feature.h:607--613), 
> and hence Vim is supposed not to include libintl.h; instead, Vim defines 
> ngettext() and other libintl macros such as _() and N_() for itself 
> (vim.h:584--619).
> 
> 
> 
> Meanwhile, when the gnome2 feature is enabled, gui_gtk.c includes gnome.h at 
> line 72, and, as written in the comment at gui_gtk.c:50, gnome.h is said to 
> redefine some libintl macros.
> 
> 
> Seeing the error message, I guess gnome.h also redefines ngettext().
> 
> 
> Therefore, I think following the way gui_gtk.c:49--73 does could give another 
> solution to the issue, namely,
> 
> 
> 
> diff --git a/src/gui_gtk.c b/src/gui_gtk.c
> index 8686381b0..c015d7ee6 100644
> --- a/src/gui_gtk.c
> +++ b/src/gui_gtk.c
> @@ -51,6 +51,9 @@
>  # ifdef _
>  #  undef _
>  # endif
> +# ifdef ngettext
> +#  undef ngettext
> +# endif
>  # ifdef N_
>  #  undef N_
>  # endif

Thank you for the polite explanation!
Your suggested way cleared this problem.
In fact, I also made the same fix for gui_gtk_x11.c.

Patch attached.

Thanks again👍
--
Best regards,
Hirohito Higashi (a.k.a. h_east)

-- 
-- 
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.
diff --git a/src/gui_gtk.c b/src/gui_gtk.c
index 8686381..c015d7e 100644
--- a/src/gui_gtk.c
+++ b/src/gui_gtk.c
@@ -51,6 +51,9 @@
 # ifdef _
 #  undef _
 # endif
+# ifdef ngettext
+#  undef ngettext
+# endif
 # ifdef N_
 #  undef N_
 # endif
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 514ac9e..71bcd6a 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -35,6 +35,9 @@
 # ifdef _
 #  undef _
 # endif
+# ifdef ngettext
+#  undef ngettext
+# endif
 # ifdef N_
 #  undef N_
 # endif


Re: [patch] Build error occurred with --with-features=small --enable-gui=gnome2 on Fedora

2017-01-08 Fir de Conversatie Kazunobu Kuriyama
2017-01-09 12:27 GMT+09:00 h_east :

> Hi Bram and list,
>
> A build error has occurred with the following configure on Fedora 23.
>
> $ make distclean
> $ ./configure --with-features=small --enable-gui=gnome2
> --enable-fail-if-missing
> $ make
>
> In file included from gui_gtk.c:34:0:
> /usr/include/libintl.h:61:14: error: expected identifier or '(' before
> 'unsigned'
>  extern char *ngettext (const char *__msgid1, const char *__msgid2,
>   ^
> vim.h:606:35: error: expected ')' before '==' token
>  # define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
>^
> vim.h:606:41: error: expected ')' before '?' token
>  # define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
>  ^
> Makefile:2971: recipe for target 'objects/gui_gtk.o' failed
> make[1]: *** [objects/gui_gtk.o] Error 1
> make[1]: Leaving directory '/home/h_east/samba/github/vim/src'
> Makefile:26: recipe for target 'first' failed
> make: *** [first] Error 2
>
>
> I wrote a patch.  But I don't know this patch is correct...
>

I'm afraid the proposed patch is a sort of overkill, because FEAT_GUI_GTK
is broader than FEAT_GUI_GNOME.

So, let me explain another way to fix the issue.

With the small build, FEAT_GETTEXT is kept undefined (feature.h:607--613),
and hence Vim is supposed not to include libintl.h; instead, Vim defines
ngettext() and other libintl macros such as _() and N_() for itself
(vim.h:584--619).

Meanwhile, when the gnome2 feature is enabled, gui_gtk.c includes gnome.h
at line 72, and, as written in the comment at gui_gtk.c:50, gnome.h is said
to redefine some libintl macros.

Seeing the error message, I guess gnome.h also redefines ngettext().

Therefore, I think following the way gui_gtk.c:49--73 does could give
another solution to the issue, namely,

diff --git a/src/gui_gtk.c b/src/gui_gtk.c
index 8686381b0..c015d7ee6 100644
--- a/src/gui_gtk.c
+++ b/src/gui_gtk.c
@@ -51,6 +51,9 @@
 # ifdef _
 #  undef _
 # endif
+# ifdef ngettext
+#  undef ngettext
+# endif
 # ifdef N_
 #  undef N_
 # endif

--
> Best regards,
> Hirohito Higashi (a.k.a. h_east)
>

Best regards,
Kazunobu Kuriyama

>
> --
> --
> 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.
>

-- 
-- 
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] Build error occurred with --with-features=small --enable-gui=gnome2 on Fedora

2017-01-08 Fir de Conversatie h_east
Hi Bram and list,

A build error has occurred with the following configure on Fedora 23.

$ make distclean
$ ./configure --with-features=small --enable-gui=gnome2 --enable-fail-if-missing
$ make

In file included from gui_gtk.c:34:0:
/usr/include/libintl.h:61:14: error: expected identifier or '(' before 
'unsigned'
 extern char *ngettext (const char *__msgid1, const char *__msgid2,
  ^
vim.h:606:35: error: expected ')' before '==' token
 # define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
   ^
vim.h:606:41: error: expected ')' before '?' token
 # define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
 ^
Makefile:2971: recipe for target 'objects/gui_gtk.o' failed
make[1]: *** [objects/gui_gtk.o] Error 1
make[1]: Leaving directory '/home/h_east/samba/github/vim/src'
Makefile:26: recipe for target 'first' failed
make: *** [first] Error 2


I wrote a patch.  But I don't know this patch is correct...
--
Best regards,
Hirohito Higashi (a.k.a. h_east)

-- 
-- 
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.
diff --git a/src/vim.h b/src/vim.h
index ef75ea2..f86589f 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -603,7 +603,9 @@ extern char *(*dyn_libintl_textdomain)(const char *domainname);
 # endif
 #else
 # define _(x) ((char *)(x))
-# define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
+# ifndef FEAT_GUI_GTK
+#  define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
+# endif
 # define N_(x) x
 # ifdef bindtextdomain
 #  undef bindtextdomain


Re: Patch 8.0.0159

2017-01-08 Fir de Conversatie h_east
Hi Bram and list,

2017-1-9(Mon) 4:00:38 UTC+9 Bram Moolenaar:
> Patch 8.0.0159
> Summary:crash on startup when updating tabline
> Problem:Using a NULL pointer when using feedkeys() to trigger drawing a
> tabline.
> Solution:   Skip drawing a tabline if TabPageIdxs is NULL. (Dominique Pelle)
> Also fix recursing into getcmdline() from the cmd window.
> Files:  src/screen.c, src/ex_getln.c
[...]

A build error has occurred with FEATURES=small
https://travis-ci.org/vim/vim/jobs/190070102

It is fixed by the attached patch.

--
Best regards,
Hirohito Higashi (a.k.a. h_east)

-- 
-- 
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.
diff --git a/src/ex_getln.c b/src/ex_getln.c
index cf99ae2..62110ac 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -212,7 +212,8 @@ getcmdline(
 #endif
 expand_T	xpc;
 long	*b_im_ptr = NULL;
-#if defined(FEAT_WILDMENU) || defined(FEAT_EVAL) || defined(FEAT_SEARCH_EXTRA)
+#if defined(FEAT_WILDMENU) || defined(FEAT_EVAL) || defined(FEAT_SEARCH_EXTRA) \
+|| defined(FEAT_CMDWIN)
 /* Everything that may work recursively should save and restore the
  * current command line in save_ccline.  That includes update_screen(), a
  * custom status line may invoke ":normal". */


Patch 8.0.0160

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0160
Problem:EMSG() is sometimes used for internal errors.
Solution:   Change them to IEMSG(). (Dominique Pelle)  And a few more.
Files:  src/regexp_nfa.c, src/channel.c, src/eval.c


*** ../vim-8.0.0159/src/regexp_nfa.c2016-10-02 16:51:32.744592886 +0200
--- src/regexp_nfa.c2017-01-08 20:46:14.703544056 +0100
***
*** 1359,1365 
rc_did_emsg = TRUE;
return FAIL;
}
!   EMSGN("INTERNAL: Unknown character class char: %ld", c);
return FAIL;
}
  #ifdef FEAT_MBYTE
--- 1359,1365 
rc_did_emsg = TRUE;
return FAIL;
}
!   IEMSGN("INTERNAL: Unknown character class char: %ld", c);
return FAIL;
}
  #ifdef FEAT_MBYTE
***
*** 4925,4931 
  
default:
/* should not be here :P */
!   EMSGN(_(e_ill_char_class), class);
return FAIL;
  }
  return FAIL;
--- 4925,4931 
  
default:
/* should not be here :P */
!   IEMSGN(_(e_ill_char_class), class);
return FAIL;
  }
  return FAIL;
***
*** 6688,6694 
  
  #ifdef DEBUG
if (c < 0)
!   EMSGN("INTERNAL: Negative state char: %ld", c);
  #endif
result = (c == curc);
  
--- 6688,6694 
  
  #ifdef DEBUG
if (c < 0)
!   IEMSGN("INTERNAL: Negative state char: %ld", c);
  #endif
result = (c == curc);
  
***
*** 7216,7222 
  {
/* TODO: only give this error for debugging? */
if (post_ptr >= post_end)
!   EMSGN("Internal error: estimated max number of states insufficient: 
%ld", post_end - post_start);
goto fail;  /* Cascaded (syntax?) error */
  }
  
--- 7216,7222 
  {
/* TODO: only give this error for debugging? */
if (post_ptr >= post_end)
!   IEMSGN("Internal error: estimated max number of states 
insufficient: %ld", post_end - post_start);
goto fail;  /* Cascaded (syntax?) error */
  }
  
*** ../vim-8.0.0159/src/channel.c   2016-12-01 15:34:04.083413947 +0100
--- src/channel.c   2017-01-08 20:45:24.291925178 +0100
***
*** 1567,1573 
  int   dummy;
  
  if (safe_to_invoke_callback == 0)
!   EMSG("INTERNAL: Invoking callback when it is not safe");
  
  argv[0].v_type = VAR_CHANNEL;
  argv[0].vval.v_channel = channel;
--- 1567,1573 
  int   dummy;
  
  if (safe_to_invoke_callback == 0)
!   IEMSG("INTERNAL: Invoking callback when it is not safe");
  
  argv[0].v_type = VAR_CHANNEL;
  argv[0].vval.v_channel = channel;
*** ../vim-8.0.0159/src/eval.c  2017-01-08 19:25:34.851896407 +0100
--- src/eval.c  2017-01-08 20:45:31.043874131 +0100
***
*** 270,276 
p = &vimvars[i];
if (STRLEN(p->vv_name) > 16)
{
!   EMSG("INTERNAL: name too long, increase size of dictitem16_T");
getout(1);
}
STRCPY(p->vv_di.di_key, p->vv_name);
--- 270,276 
p = &vimvars[i];
if (STRLEN(p->vv_name) > 16)
{
!   IEMSG("INTERNAL: name too long, increase size of dictitem16_T");
getout(1);
}
STRCPY(p->vv_di.di_key, p->vv_name);
*** ../vim-8.0.0159/src/version.c   2017-01-08 20:00:00.232408217 +0100
--- src/version.c   2017-01-08 20:46:30.347426020 +0100
***
*** 766,767 
--- 766,769 
  {   /* Add new patch number below this line */
+ /**/
+ 160,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
232. You start conversations with, "Have you gotten an ISDN line?"

 /// 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.0159

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0159
Summary:crash on startup when updating tabline
Problem:Using a NULL pointer when using feedkeys() to trigger drawing a
tabline.
Solution:   Skip drawing a tabline if TabPageIdxs is NULL. (Dominique Pelle)
Also fix recursing into getcmdline() from the cmd window.
Files:  src/screen.c, src/ex_getln.c


*** ../vim-8.0.0158/src/screen.c2016-12-09 19:28:33.576993205 +0100
--- src/screen.c2017-01-08 19:53:03.803518585 +0100
***
*** 3650,3656 
if (fdc > 0)
{
/* Draw the 'foldcolumn'.  Allocate a buffer, "extra" may
!* already be in used. */
p_extra_free = alloc(12 + 1);
  
if (p_extra_free != NULL)
--- 3650,3656 
if (fdc > 0)
{
/* Draw the 'foldcolumn'.  Allocate a buffer, "extra" may
!* already be in use. */
p_extra_free = alloc(12 + 1);
  
if (p_extra_free != NULL)
***
*** 10344,10349 
--- 10344,10351 
  #endif
);
  
+ if (ScreenLines == NULL)
+   return;
  redraw_tabline = FALSE;
  
  #ifdef FEAT_GUI_TABLINE
*** ../vim-8.0.0158/src/ex_getln.c  2016-10-15 15:39:34.685059653 +0200
--- src/ex_getln.c  2017-01-08 19:55:36.542378038 +0100
***
*** 772,778 
--- 772,780 
/*
 * Open a window to edit the command line (and history).
 */
+   save_cmdline(&save_ccline);
c = ex_window();
+   restore_cmdline(&save_ccline);
some_key_typed = TRUE;
}
}
*** ../vim-8.0.0158/src/version.c   2017-01-08 19:25:34.851896407 +0100
--- src/version.c   2017-01-08 19:38:41.461992894 +0100
***
*** 766,767 
--- 766,769 
  {   /* Add new patch number below this line */
+ /**/
+ 159,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
231. You sprinkle Carpet Fresh on the rugs and put your vacuum cleaner
 in the front doorway permanently so it always looks like you are
 actually attempting to do something about that mess that has amassed
 since you discovered the Internet.

 /// 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: Patch 8.0.0151

2017-01-08 Fir de Conversatie Bram Moolenaar

Yegappan Lakshmanan wrote:

> On Sun, Jan 8, 2017 at 9:12 AM, Bram Moolenaar  wrote:
> >
> > Yegappan wrote:
> >
> >> On Sun, Jan 8, 2017 at 4:26 AM, Bram Moolenaar  wrote:
> >> >
> >> > Patch 8.0.0151
> >> > Problem:To pass buffer content to system() and systemlist() one has 
> >> > to
> >> > first create a string or list.
> >> > Solution:   Allow passing a buffer number. (LemonBoy, closes #1240)
> >> >
> >>
> >> Currently only the entire buffer can be used to the external command.
> >> Does it make sense to also support specifying a range of lines to
> >> be passed to the command? The default is the entire buffer.
> >
> > Yeah, I also wondered if that would be useful.  In case it is, we could
> > pass a dict argument with the range.
> > {'bufnr': bufnr('%'), 'start': 2, 'end': line('$') - 1}
> >
> 
> I was thinking more along the lines of
> 
>  system("cmd", bufnr, begin_lnum, end_lnum)
> 
> The attached patch implements this.

The problem with this is if we ever want to pass another argument it
would require to pass the begin and end line numbers.  Or also allow for
a dict argument somehow.  Anyway, this quickly gets messy.


-- 
hundred-and-one symptoms of being an internet addict:
230. You spend your Friday nights typing away at your keyboard

 /// 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: Patch 8.0.0156

2017-01-08 Fir de Conversatie Bram Moolenaar

Dominique wrote:

> Bram Moolenaar  wrote:
> 
> > Patch 8.0.0156
> > Problem:Several float functions are not covered by tests.
> > Solution:   Add float tests. (Dominique Pelle)
> > Files:  src/Makefile, src/testdir/test_alot.vim,
> > src/testdir/test_float_func.vim
> 
> I just see that appveyor shows test failures on Windows.
> I'll have a look.  I'll use github for patches from now
> on, as they are checked with appveyor.
> 
> I also see that I swapped expected vs actual values
> in assert_equal(...).  I'll change that soon too.

I have already done this.  The tests also uncovered a problem with
str2float() on Windows, "nan" and "inf" didn't work.

-- 
A computer without Windows is like a fish without a bicycle.

 /// 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.0158

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0158 (after 8.0.0156)
Problem:On MS-Windows some float functions return a different value when
passed unusual values.  strtod() doesn't work for "inf" and "nan".
Solution:   Accept both results.  Fix str2float() for MS-Windows.  Also
reorder assert function arguments.
Files:  src/testdir/test_float_func.vim, src/eval.c


*** ../vim-8.0.0157/src/testdir/test_float_func.vim 2017-01-08 
17:58:58.767107006 +0100
--- src/testdir/test_float_func.vim 2017-01-08 18:58:26.256142083 +0100
***
*** 5,227 
  end
  
  func Test_abs()
!   call assert_equal(string(abs(1.23)), '1.23')
!   call assert_equal(string(abs(-1.23)), '1.23')
!   call assert_equal(string(abs(0.0)), '0.0')
!   call assert_equal(string(abs(1.0/(1.0/0.0))), '0.0')
!   call assert_equal(string(abs(-1.0/(1.0/0.0))), '0.0')
!   call assert_equal(string(abs(1.0/0.0)), 'inf')
!   call assert_equal(string(abs(-1.0/0.0)), 'inf')
!   call assert_equal(string(abs(0.0/0.0)), 'nan')
  endfunc
  
  func Test_sqrt()
!   call assert_equal(string(sqrt(0.0)), '0.0')
!   call assert_equal(string(sqrt(2.0)), '1.414214')
!   call assert_equal(string(sqrt(1.0/0.0)), 'inf')
!   call assert_equal(string(sqrt(-1.0)), 'nan')
!   call assert_equal(string(sqrt(0.0/0.0)), 'nan')
  endfunc
  
  func Test_log()
!   call assert_equal(string(log(1.0)), '0.0')
!   call assert_equal(string(log(0.5)), '-0.693147')
!   call assert_equal(string(log(0.0)), '-inf')
!   call assert_equal(string(log(-1.0)), 'nan')
!   call assert_equal(string(log(1.0/0.0)), 'inf')
!   call assert_equal(string(log(0.0/0.0)), 'nan')
  endfunc
  
  func Test_log10()
!   call assert_equal(string(log10(1.0)), '0.0')
!   call assert_equal(string(log10(100.0)), '2.0')
!   call assert_equal(string(log10(120.0)), '2.079181')
!   call assert_equal(string(log10(0.0)), '-inf')
!   call assert_equal(string(log10(-1.0)), 'nan')
!   call assert_equal(string(log10(1.0/0.0)), 'inf')
!   call assert_equal(string(log10(0.0/0.0)), 'nan')
  endfunc
  
  func Test_exp()
!   call assert_equal(string(exp(0.0)), '1.0')
!   call assert_equal(string(exp(2.0)), '7.389056')
!   call assert_equal(string(exp(-1.0)),'0.367879')
!   call assert_equal(string(exp(1.0/0.0)), 'inf')
!   call assert_equal(string(exp(-1.0/0.0)), '0.0')
!   call assert_equal(string(exp(0.0/0.0)), 'nan')
  endfunc
  
  func Test_sin()
!   call assert_equal(string(sin(0.0)), '0.0')
!   call assert_equal(string(sin(1.0)), '0.841471')
!   call assert_equal(string(sin(-0.5)), '-0.479426')
!   call assert_equal(string(sin(0.0/0.0)), 'nan')
!   call assert_equal(string(sin(1.0/0.0)), 'nan')
!   call assert_equal(string(sin(1.0/(1.0/0.0))), '0.0')
!   call assert_equal(string(sin(-1.0/(1.0/0.0))), '-0.0')
  endfunc
  
  func Test_asin()
!   call assert_equal(string(asin(0.0)), '0.0')
!   call assert_equal(string(asin(1.0)), '1.570796')
!   call assert_equal(string(asin(-0.5)), '-0.523599')
!   call assert_equal(string(asin(1.1)), 'nan')
!   call assert_equal(string(asin(1.0/0.0)), 'nan')
!   call assert_equal(string(asin(0.0/0.0)), 'nan')
  endfunc
  
  func Test_sinh()
!   call assert_equal(string(sinh(0.0)), '0.0')
!   call assert_equal(string(sinh(0.5)), '0.521095')
!   call assert_equal(string(sinh(-0.9)), '-1.026517')
!   call assert_equal(string(sinh(1.0/0.0)), 'inf')
!   call assert_equal(string(sinh(-1.0/0.0)), '-inf')
!   call assert_equal(string(sinh(0.0/0.0)), 'nan')
  endfunc
  
  func Test_cos()
!   call assert_equal(string(cos(0.0)), '1.0')
!   call assert_equal(string(cos(1.0)), '0.540302')
!   call assert_equal(string(cos(-0.5)), '0.877583')
!   call assert_equal(string(cos(0.0/0.0)), 'nan')
!   call assert_equal(string(cos(1.0/0.0)), 'nan')
  endfunc
  
  func Test_acos()
!   call assert_equal(string(acos(0.0)), '1.570796')
!   call assert_equal(string(acos(1.0)), '0.0')
!   call assert_equal(string(acos(-1.0)), '3.141593')
!   call assert_equal(string(acos(-0.5)), '2.094395')
!   call assert_equal(string(acos(1.1)), 'nan')
!   call assert_equal(string(acos(1.0/0.0)), 'nan')
!   call assert_equal(string(acos(0.0/0.0)), 'nan')
  endfunc
  
  func Test_cosh()
!   call assert_equal(string(cosh(0.0)), '1.0')
!   call assert_equal(string(cosh(0.5)), '1.127626')
!   call assert_equal(string(cosh(1.0/0.0)), 'inf')
!   call assert_equal(string(cosh(-1.0/0.0)), 'inf')
!   call assert_equal(string(cosh(0.0/0.0)), 'nan')
  endfunc
  
  func Test_tan()
!   call assert_equal(string(tan(0.0)), '0.0')
!   call assert_equal(string(tan(0.5)), '0.546302')
!   call assert_equal(string(tan(-0.5)), '-0.546302')
!   call assert_equal(string(tan(1.0/0.0)), 'nan')
!   call assert_equal(string(cos(0.0/0.0)), 'nan')
!   call assert_equal(string(tan(1.0/(1.0/0.0))), '0.0')
!   call assert_equal(string(tan(-1.0/(1.0/0.0))), '-0.0')
  endfunc
  
  func Test_atan()
!   call assert_equal(string(atan(0.0)), '0.0')
!   call assert_equal(string(atan(0.5)), '0.463648')
!   call assert_equal(string(atan(-1.0)), '-0.785398')

Re: Patch 8.0.0156

2017-01-08 Fir de Conversatie Dominique Pellé
Bram Moolenaar  wrote:

> Patch 8.0.0156
> Problem:Several float functions are not covered by tests.
> Solution:   Add float tests. (Dominique Pelle)
> Files:  src/Makefile, src/testdir/test_alot.vim,
> src/testdir/test_float_func.vim

I just see that appveyor shows test failures on Windows.
I'll have a look.  I'll use github for patches from now
on, as they are checked with appveyor.

I also see that I swapped expected vs actual values
in assert_equal(...).  I'll change that soon too.

Regards
Dominique

-- 
-- 
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.0157

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0157
Summary:no completion for :syntax spell and :syntax sync
Problem:No command line completion for ":syntax spell" and ":syntax sync".
Solution:   Implement the completion. (Dominique Pelle)
Files:  src/syntax.c, src/testdir/test_syntax.vim


*** ../vim-8.0.0156/src/syntax.c2017-01-08 17:46:16.016900321 +0100
--- src/syntax.c2017-01-08 18:27:27.062154264 +0100
***
*** 6383,6389 
  static enum
  {
  EXP_SUBCMD,   /* expand ":syn" sub-commands */
! EXP_CASE  /* expand ":syn case" arguments */
  } expand_what;
  
  /*
--- 6383,6391 
  static enum
  {
  EXP_SUBCMD,   /* expand ":syn" sub-commands */
! EXP_CASE, /* expand ":syn case" arguments */
! EXP_SPELL,/* expand ":syn spell" arguments */
! EXP_SYNC  /* expand ":syn sync" arguments */
  } expand_what;
  
  /*
***
*** 6434,6439 
--- 6436,6445 
xp->xp_context = EXPAND_NOTHING;
else if (STRNICMP(arg, "case", p - arg) == 0)
expand_what = EXP_CASE;
+   else if (STRNICMP(arg, "spell", p - arg) == 0)
+   expand_what = EXP_SPELL;
+   else if (STRNICMP(arg, "sync", p - arg) == 0)
+   expand_what = EXP_SYNC;
else if (  STRNICMP(arg, "keyword", p - arg) == 0
|| STRNICMP(arg, "region", p - arg) == 0
|| STRNICMP(arg, "match", p - arg) == 0
***
*** 6445,6452 
  }
  }
  
- static char *(case_args[]) = {"match", "ignore", NULL};
- 
  /*
   * Function given to ExpandGeneric() to obtain the list syntax names for
   * expansion.
--- 6451,6456 
***
*** 6454,6462 
  char_u *
  get_syntax_name(expand_T *xp UNUSED, int idx)
  {
! if (expand_what == EXP_SUBCMD)
!   return (char_u *)subcommands[idx].name;
! return (char_u *)case_args[idx];
  }
  
  #endif /* FEAT_CMDL_COMPL */
--- 6458,6488 
  char_u *
  get_syntax_name(expand_T *xp UNUSED, int idx)
  {
! switch (expand_what)
! {
!   case EXP_SUBCMD:
!   return (char_u *)subcommands[idx].name;
!   case EXP_CASE:
!   {
!   static char *case_args[] = {"match", "ignore", NULL};
!   return (char_u *)case_args[idx];
!   }
!   case EXP_SPELL:
!   {
!   static char *spell_args[] =
!   {"toplevel", "notoplevel", "default", NULL};
!   return (char_u *)spell_args[idx];
!   }
!   case EXP_SYNC:
!   {
!   static char *sync_args[] =
!   {"ccomment", "clear", "fromstart",
!"linebreaks=", "linecont", "lines=", "match",
!"maxlines=", "minlines=", "region", NULL};
!   return (char_u *)sync_args[idx];
!   }
! }
! return NULL;
  }
  
  #endif /* FEAT_CMDL_COMPL */
*** ../vim-8.0.0156/src/testdir/test_syntax.vim 2016-12-11 15:24:45.015136329 
+0100
--- src/testdir/test_syntax.vim 2017-01-08 18:25:38.922970741 +0100
***
*** 150,155 
--- 150,161 
call feedkeys(":syn case \\\"\", 'tx')
call assert_equal('"syn case ignore match', @:)
  
+   call feedkeys(":syn spell \\\"\", 'tx')
+   call assert_equal('"syn spell default notoplevel toplevel', @:)
+ 
+   call feedkeys(":syn sync \\\"\", 'tx')
+   call assert_equal('"syn sync ccomment clear fromstart linebreaks= linecont 
lines= match maxlines= minlines= region', @:)
+ 
call feedkeys(":syn list \\\"\", 'tx')
call assert_match('^"syn list Boolean Character ', @:)
  
*** ../vim-8.0.0156/src/version.c   2017-01-08 17:58:58.767107006 +0100
--- src/version.c   2017-01-08 18:26:14.842699536 +0100
***
*** 766,767 
--- 766,769 
  {   /* Add new patch number below this line */
+ /**/
+ 157,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
228. You spend Saturday night making the counter on your home page
 pass that 2000 mark.

 /// 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: Patch 8.0.0151

2017-01-08 Fir de Conversatie Yegappan Lakshmanan
Hi Bram,

On Sun, Jan 8, 2017 at 9:12 AM, Bram Moolenaar  wrote:
>
> Yegappan wrote:
>
>> On Sun, Jan 8, 2017 at 4:26 AM, Bram Moolenaar  wrote:
>> >
>> > Patch 8.0.0151
>> > Problem:To pass buffer content to system() and systemlist() one has to
>> > first create a string or list.
>> > Solution:   Allow passing a buffer number. (LemonBoy, closes #1240)
>> >
>>
>> Currently only the entire buffer can be used to the external command.
>> Does it make sense to also support specifying a range of lines to
>> be passed to the command? The default is the entire buffer.
>
> Yeah, I also wondered if that would be useful.  In case it is, we could
> pass a dict argument with the range.
> {'bufnr': bufnr('%'), 'start': 2, 'end': line('$') - 1}
>

I was thinking more along the lines of

 system("cmd", bufnr, begin_lnum, end_lnum)

The attached patch implements this.

- Yegappan

>
> Leaving out "start" would mean the first line.
> Leaving out "end" would mean the last line.
>
> This is more complicated to implement, and it's already possible to use
> a list from getline(), thus I would not do it unless one can give an
> example of where this would actually be used.
>

-- 
-- 
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.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index f66fa9a..3c0ceb7 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -801,8 +801,8 @@ static struct fst
 {"synIDtrans", 1, 1, f_synIDtrans},
 {"synconcealed",   2, 2, f_synconcealed},
 {"synstack",   2, 2, f_synstack},
-{"system", 1, 2, f_system},
-{"systemlist", 1, 2, f_systemlist},
+{"system", 1, 4, f_system},
+{"systemlist", 1, 4, f_systemlist},
 {"tabpagebuflist", 0, 1, f_tabpagebuflist},
 {"tabpagenr",  0, 1, f_tabpagenr},
 {"tabpagewinnr",   1, 2, f_tabpagewinnr},
@@ -11848,6 +11848,7 @@ get_cmd_output_as_rettv(
if (argvars[1].v_type == VAR_NUMBER)
{
linenr_Tlnum;
+   linenr_Tbegin_lnum, end_lnum;
buf_T   *buf;
 
buf = buflist_findnr(argvars[1].vval.v_number);
@@ -11857,7 +11858,25 @@ get_cmd_output_as_rettv(
goto errret;
}
 
-   for (lnum = 1; lnum <= buf->b_ml.ml_line_count; lnum++)
+   begin_lnum = 1;
+   end_lnum = buf->b_ml.ml_line_count;
+   if (argvars[2].v_type == VAR_NUMBER)
+   {
+   begin_lnum = get_tv_lnum_buf(&argvars[2], buf);
+   if (argvars[3].v_type == VAR_NUMBER)
+   {
+   end_lnum = get_tv_lnum_buf(&argvars[3], buf);
+   if (end_lnum > buf->b_ml.ml_line_count)
+   end_lnum = buf->b_ml.ml_line_count;
+   }
+   if (begin_lnum < 1 || end_lnum < begin_lnum)
+   {
+   EMSG(_(e_invarg));
+   goto errret;
+   }
+   }
+
+   for (lnum = begin_lnum; lnum <= end_lnum; lnum++)
{
for (p = ml_get_buf(buf, lnum, FALSE); *p != NUL; ++p)
if (putc(*p == '\n' ? NUL : *p, fd) == EOF)


Re: [patch] fix crash in draw_tabline() in screen.c

2017-01-08 Fir de Conversatie Bram Moolenaar

Dominique wrote:

> The following command crashes with vim-8.0.154 and older:
> 
> $ vim -e -s -u NONE -c tabnew -c 'call feedkeys("q:", "x!")'
> 
> Crash happens at eval.c:10365 which dereferences a NULL
> pointer since TabPageIdxs is NULL:
> 
>   10363   /* Init TabPageIdxs[] to zero: Clicking outside of tabs has
> no effect. */
>   10364   for (scol = 0; scol < Columns; ++scol)
> !!10365   TabPageIdxs[scol] = 0;
> 
> Vim-7.4.52 which comes with ubuntu-14.04 does not crash.
> So it's a regression. Doing a bissection, I see that it started to
> crash in this change:
> 
> ===
> commit 5f8a14b9dea094b8bbab94cfc1e8da8e633fbc01
> Author: Bram Moolenaar 
> Date:   Thu Jan 21 23:34:58 2016 +0100
> 
> patch 7.4.1151
> Problem:Missing change to eval.c
> Solution:   Also change feedkeys().
> ===
> 
> Attached patch fixes it, but I'm not sure whether
> it's the right way to fix it.
> 
> Bug was found using afl-fuzz.

Patch was not attached...

-- 
hundred-and-one symptoms of being an internet addict:
226. You sit down at the computer right after dinner and your spouse
 says "See you in the morning."

 /// 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: Patch 8.0.0151

2017-01-08 Fir de Conversatie Bram Moolenaar

Yegappan wrote:

> On Sun, Jan 8, 2017 at 4:26 AM, Bram Moolenaar  wrote:
> >
> > Patch 8.0.0151
> > Problem:To pass buffer content to system() and systemlist() one has to
> > first create a string or list.
> > Solution:   Allow passing a buffer number. (LemonBoy, closes #1240)
> >
> 
> Currently only the entire buffer can be used to the external command.
> Does it make sense to also support specifying a range of lines to
> be passed to the command? The default is the entire buffer.

Yeah, I also wondered if that would be useful.  In case it is, we could
pass a dict argument with the range.
{'bufnr': bufnr('%'), 'start': 2, 'end': line('$') - 1}

Leaving out "start" would mean the first line.
Leaving out "end" would mean the last line.

This is more complicated to implement, and it's already possible to use
a list from getline(), thus I would not do it unless one can give an
example of where this would actually be used.

-- 
hundred-and-one symptoms of being an internet addict:
225. You sign up for free subscriptions for all the computer magazines

 /// 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] fix crash in draw_tabline() in screen.c

2017-01-08 Fir de Conversatie Dominique Pellé
Hi

The following command crashes with vim-8.0.154 and older:

$ vim -e -s -u NONE -c tabnew -c 'call feedkeys("q:", "x!")'

Crash happens at eval.c:10365 which dereferences a NULL
pointer since TabPageIdxs is NULL:

  10363   /* Init TabPageIdxs[] to zero: Clicking outside of tabs has
no effect. */
  10364   for (scol = 0; scol < Columns; ++scol)
!!10365   TabPageIdxs[scol] = 0;

Vim-7.4.52 which comes with ubuntu-14.04 does not crash.
So it's a regression. Doing a bissection, I see that it started to
crash in this change:

===
commit 5f8a14b9dea094b8bbab94cfc1e8da8e633fbc01
Author: Bram Moolenaar 
Date:   Thu Jan 21 23:34:58 2016 +0100

patch 7.4.1151
Problem:Missing change to eval.c
Solution:   Also change feedkeys().
===

Attached patch fixes it, but I'm not sure whether
it's the right way to fix it.

Bug was found using afl-fuzz.

Regards
Dominique

-- 
-- 
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.0156

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0156
Problem:Several float functions are not covered by tests.
Solution:   Add float tests. (Dominique Pelle)
Files:  src/Makefile, src/testdir/test_alot.vim,
src/testdir/test_float_func.vim


*** ../vim-8.0.0155/src/Makefile2017-01-08 13:25:47.626339783 +0100
--- src/Makefile2017-01-08 17:50:55.178781109 +0100
***
*** 2104,2109 
--- 2104,2110 
test_fileformat \
test_filter_cmd \
test_filter_map \
+   test_float_func \
test_fnameescape \
test_fnamemodify \
test_fold \
*** ../vim-8.0.0155/src/testdir/test_alot.vim   2016-10-12 17:45:13.642857417 
+0200
--- src/testdir/test_alot.vim   2017-01-08 17:51:02.170727964 +0100
***
*** 16,21 
--- 16,22 
  source test_fileformat.vim
  source test_filter_cmd.vim
  source test_filter_map.vim
+ source test_float_func.vim
  source test_fnamemodify.vim
  source test_glob2regpat.vim
  source test_goto.vim
*** ../vim-8.0.0155/src/testdir/test_float_func.vim 2017-01-08 
17:58:26.079355257 +0100
--- src/testdir/test_float_func.vim 2017-01-08 17:51:02.170727964 +0100
***
*** 0 
--- 1,227 
+ " test float functions
+ 
+ if !has('float')
+   finish
+ end
+ 
+ func Test_abs()
+   call assert_equal(string(abs(1.23)), '1.23')
+   call assert_equal(string(abs(-1.23)), '1.23')
+   call assert_equal(string(abs(0.0)), '0.0')
+   call assert_equal(string(abs(1.0/(1.0/0.0))), '0.0')
+   call assert_equal(string(abs(-1.0/(1.0/0.0))), '0.0')
+   call assert_equal(string(abs(1.0/0.0)), 'inf')
+   call assert_equal(string(abs(-1.0/0.0)), 'inf')
+   call assert_equal(string(abs(0.0/0.0)), 'nan')
+ endfunc
+ 
+ func Test_sqrt()
+   call assert_equal(string(sqrt(0.0)), '0.0')
+   call assert_equal(string(sqrt(2.0)), '1.414214')
+   call assert_equal(string(sqrt(1.0/0.0)), 'inf')
+   call assert_equal(string(sqrt(-1.0)), 'nan')
+   call assert_equal(string(sqrt(0.0/0.0)), 'nan')
+ endfunc
+ 
+ func Test_log()
+   call assert_equal(string(log(1.0)), '0.0')
+   call assert_equal(string(log(0.5)), '-0.693147')
+   call assert_equal(string(log(0.0)), '-inf')
+   call assert_equal(string(log(-1.0)), 'nan')
+   call assert_equal(string(log(1.0/0.0)), 'inf')
+   call assert_equal(string(log(0.0/0.0)), 'nan')
+ endfunc
+ 
+ func Test_log10()
+   call assert_equal(string(log10(1.0)), '0.0')
+   call assert_equal(string(log10(100.0)), '2.0')
+   call assert_equal(string(log10(120.0)), '2.079181')
+   call assert_equal(string(log10(0.0)), '-inf')
+   call assert_equal(string(log10(-1.0)), 'nan')
+   call assert_equal(string(log10(1.0/0.0)), 'inf')
+   call assert_equal(string(log10(0.0/0.0)), 'nan')
+ endfunc
+ 
+ func Test_exp()
+   call assert_equal(string(exp(0.0)), '1.0')
+   call assert_equal(string(exp(2.0)), '7.389056')
+   call assert_equal(string(exp(-1.0)),'0.367879')
+   call assert_equal(string(exp(1.0/0.0)), 'inf')
+   call assert_equal(string(exp(-1.0/0.0)), '0.0')
+   call assert_equal(string(exp(0.0/0.0)), 'nan')
+ endfunc
+ 
+ func Test_sin()
+   call assert_equal(string(sin(0.0)), '0.0')
+   call assert_equal(string(sin(1.0)), '0.841471')
+   call assert_equal(string(sin(-0.5)), '-0.479426')
+   call assert_equal(string(sin(0.0/0.0)), 'nan')
+   call assert_equal(string(sin(1.0/0.0)), 'nan')
+   call assert_equal(string(sin(1.0/(1.0/0.0))), '0.0')
+   call assert_equal(string(sin(-1.0/(1.0/0.0))), '-0.0')
+ endfunc
+ 
+ func Test_asin()
+   call assert_equal(string(asin(0.0)), '0.0')
+   call assert_equal(string(asin(1.0)), '1.570796')
+   call assert_equal(string(asin(-0.5)), '-0.523599')
+   call assert_equal(string(asin(1.1)), 'nan')
+   call assert_equal(string(asin(1.0/0.0)), 'nan')
+   call assert_equal(string(asin(0.0/0.0)), 'nan')
+ endfunc
+ 
+ func Test_sinh()
+   call assert_equal(string(sinh(0.0)), '0.0')
+   call assert_equal(string(sinh(0.5)), '0.521095')
+   call assert_equal(string(sinh(-0.9)), '-1.026517')
+   call assert_equal(string(sinh(1.0/0.0)), 'inf')
+   call assert_equal(string(sinh(-1.0/0.0)), '-inf')
+   call assert_equal(string(sinh(0.0/0.0)), 'nan')
+ endfunc
+ 
+ func Test_cos()
+   call assert_equal(string(cos(0.0)), '1.0')
+   call assert_equal(string(cos(1.0)), '0.540302')
+   call assert_equal(string(cos(-0.5)), '0.877583')
+   call assert_equal(string(cos(0.0/0.0)), 'nan')
+   call assert_equal(string(cos(1.0/0.0)), 'nan')
+ endfunc
+ 
+ func Test_acos()
+   call assert_equal(string(acos(0.0)), '1.570796')
+   call assert_equal(string(acos(1.0)), '0.0')
+   call assert_equal(string(acos(-1.0)), '3.141593')
+   call assert_equal(string(acos(-0.5)), '2.094395')
+   call assert_equal(string(acos(1.1)), 'nan')
+   call assert_equal(string(acos(1.0/0.0)), 'nan')
+   call assert_equal(string(acos(0.0/0.0)), 'nan')
+ endfunc
+ 
+ func Test_cosh()
+   call assert_equal(string(cosh(0.0)), '1.0')
+   call assert_equal(string(cosh(0.5)), '1.127626')
+   call assert_equal(string(cosh(1.0/0.0)), 'inf')
+

Re: Patch 8.0.0151

2017-01-08 Fir de Conversatie Yegappan Lakshmanan
Hi,

On Sun, Jan 8, 2017 at 4:26 AM, Bram Moolenaar  wrote:
>
> Patch 8.0.0151
> Problem:To pass buffer content to system() and systemlist() one has to
> first create a string or list.
> Solution:   Allow passing a buffer number. (LemonBoy, closes #1240)
>

Currently only the entire buffer can be used to the external command.
Does it make sense to also support specifying a range of lines to
be passed to the command? The default is the entire buffer.

- Yegappan

-- 
-- 
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.0155

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0155
Problem:When sorting zero elements a NULL pointer is passed to qsort(),
which ubsan warns for.
Solution:   Don't call qsort() if there are no elements. (Dominique Pelle)
Files:  src/syntax.c


*** ../vim-8.0.0154/src/syntax.c2017-01-02 21:37:38.033792277 +0100
--- src/syntax.c2017-01-08 17:45:30.101248846 +0100
***
*** 6704,6711 
}
  }
  
! /* sort on total time */
! qsort(ga.ga_data, (size_t)ga.ga_len, sizeof(time_entry_T),
 syn_compare_syntime);
  
  MSG_PUTS_TITLE(_("  TOTAL  COUNT  MATCH   SLOWEST AVERAGE   NAME  
 PATTERN"));
--- 6704,6713 
}
  }
  
! /* Sort on total time. Skip if there are no items to avoid passing NULL
!  * pointer to qsort(). */
! if (ga.ga_len > 1)
!   qsort(ga.ga_data, (size_t)ga.ga_len, sizeof(time_entry_T),
 syn_compare_syntime);
  
  MSG_PUTS_TITLE(_("  TOTAL  COUNT  MATCH   SLOWEST AVERAGE   NAME  
 PATTERN"));
*** ../vim-8.0.0154/src/version.c   2017-01-08 14:14:34.732591613 +0100
--- src/version.c   2017-01-08 17:36:21.825412583 +0100
***
*** 766,767 
--- 766,769 
  {   /* Add new patch number below this line */
+ /**/
+ 155,
  /**/

-- 
If evolution theories are correct, humans will soon grow a third
hand for operating the mouse.

 /// 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.


Colorscheme as a buffer property

2017-01-08 Fir de Conversatie justrajdeep
Hi Developers,

Can colorscheme be made a buffer property? 

Use case:
We could have headers in different colorscheme and source code in different 
one. Instant visual clue of the filetypes.

Thanks 
Rajdeep

-- 
-- 
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: Nested substitute() calls break highlights in Vim script

2017-01-08 Fir de Conversatie Bram Moolenaar

Ryuichi Hayashida wrote:

> I found that syntax highlight in Vim script is broken in some situation.
> When nested substitute() calls are in code, first one is highlighted as 
> vimFuncName and second one is highlighted as vimSubst.
> 
> How to reproduce this is saving below code as blah.vim and open it in vim 
> with :syntax enable.
> 
> function! F()
> let foo = substitute(substitute('a', 'a', 'b', ''), 'b', 'c', '')
> endfunction
> 
> substitute() causes this problem but empty() doesn't cause this problem. I'll 
> attach a screenshot for this in this mail.
> I tried to fix this. But syntax/vim.vim was generated by script and I could 
> not find it. So I'm reporting it as issue here.
> 
> My environment is
> 
> - macOS 10.12
> - Vim 8.0 (1-124)
> - MacVim on terminal

The Vim syntax file is maintained by Charles Campbell.

-- 
Your fault: core dumped

 /// 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] What's the minimum version of GCC required to build the latest Vim? Are there any patches to allow one to build it with even older versions of GCC? (#1363)

2017-01-08 Fir de Conversatie Nikolay Aleksandrovich Pavlov
2017-01-08 16:50 GMT+03:00 Brenton Horne :
> Hi,
>
> I maintain Vim packages in my Open Build Service home project, for example
> here are the packaging files I use to build it for CentOS/Fedora/Scientific
> Linux https://build.opensuse.org/package/show/home:fusion809/vim-redhat. I
> would like to build Vim for CentOS 5 and 6, but I cannot presently do this,
> because the build fails and I think the reason why is that GCC is too old.
> So I am here to ask what's the minimum version of GCC required to build the
> latest Vim (so 8.0) and are there any ways to build Vim with an older GCC?

Can you show the failing log? It may be some bug in Vim.

BTW, maybe there are some other C compilers available?

>
> Thanks for your time,
> Brenton
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
>
> --
> --
> 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.

-- 
-- 
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.


Nested substitute() calls break highlights in Vim script

2017-01-08 Fir de Conversatie Ryuichi Hayashida
Hi Bram and all,

I found that syntax highlight in Vim script is broken in some situation.
When nested substitute() calls are in code, first one is highlighted as 
vimFuncName and second one is highlighted as vimSubst.

How to reproduce this is saving below code as blah.vim and open it in vim with 
:syntax enable.

function! F()
let foo = substitute(substitute('a', 'a', 'b', ''), 'b', 'c', '')
endfunction

substitute() causes this problem but empty() doesn't cause this problem. I'll 
attach a screenshot for this in this mail.
I tried to fix this. But syntax/vim.vim was generated by script and I could not 
find it. So I'm reporting it as issue here.

My environment is

- macOS 10.12
- Vim 8.0 (1-124)
- MacVim on terminal

Regards,
Hayashida

-- 
-- 
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.0154

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0154 (after 8.0.0151)
Summary:system() test fails on OS/X
Problem:system() test fails on OS/X.
Solution:   Deal with leading spaces.
Files:  src/testdir/test_system.vim


*** ../vim-8.0.0153/src/testdir/test_system.vim 2017-01-08 13:55:03.701304016 
+0100
--- src/testdir/test_system.vim 2017-01-08 14:13:31.681061408 +0100
***
*** 19,31 
call assert_equal('123',   system('cat', '123'))
call assert_equal(['123'], systemlist('cat', '123'))
call assert_equal(["as\df"], systemlist('cat', ["as\df"]))
new Xdummy
call setline(1, ['asdf', "pw\er", ''])
!   call assert_equal("3\n",  system('wc -l', bufnr('%')))
  
let out = systemlist('wc -l', bufnr('%'))
" On Windows we may get a trailing CR.
if out != ["3\r"]
  call assert_equal(['3'],  out)
endif
  
--- 19,39 
call assert_equal('123',   system('cat', '123'))
call assert_equal(['123'], systemlist('cat', '123'))
call assert_equal(["as\df"], systemlist('cat', ["as\df"]))
+ 
new Xdummy
call setline(1, ['asdf', "pw\er", ''])
!   let out = system('wc -l', bufnr('%'))
!   " On OS/X we get leading spaces
!   let out = substitute(out, '^ *', '', '')
!   call assert_equal("3\n", out)
  
let out = systemlist('wc -l', bufnr('%'))
" On Windows we may get a trailing CR.
if out != ["3\r"]
+ " On OS/X we get leading spaces
+ if type(out) == v:t_list
+   let out[0] = substitute(out[0], '^ *', '', '')
+ endif
  call assert_equal(['3'],  out)
endif
  
*** ../vim-8.0.0153/src/version.c   2017-01-08 13:55:03.701304016 +0100
--- src/version.c   2017-01-08 14:12:18.345607926 +0100
***
*** 766,767 
--- 766,769 
  {   /* Add new patch number below this line */
+ /**/
+ 154,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
219. Your spouse has his or her lawyer deliver the divorce papers...
 via e-mail.

 /// 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.0153

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0153 (after 8.0.0151)
Problem:system() test fails on MS-Windows.
Solution:   Deal when extra space and CR.
Files:  src/testdir/test_system.vim


*** ../vim-8.0.0152/src/testdir/test_system.vim 2017-01-08 13:25:47.626339783 
+0100
--- src/testdir/test_system.vim 2017-01-08 13:51:25.560513157 +0100
***
*** 4,19 
if !executable('echo') || !executable('cat') || !executable('wc')
  return
endif
!   call assert_equal("123\n", system('echo 123'))
!   call assert_equal(['123'], systemlist('echo 123'))
call assert_equal('123',   system('cat', '123'))
call assert_equal(['123'], systemlist('cat', '123'))
call assert_equal(["as\df"], systemlist('cat', ["as\df"]))
new Xdummy
call setline(1, ['asdf', "pw\er", ''])
call assert_equal("3\n",  system('wc -l', bufnr('%')))
!   call assert_equal(['3'],  systemlist('wc -l', bufnr('%')))
!   call assert_equal(['asdf', "pw\er", ''],  systemlist('cat', 
bufnr('%')))
bwipe!
  
call assert_fails('call system("wc -l", 9)', 'E86:')
--- 4,39 
if !executable('echo') || !executable('cat') || !executable('wc')
  return
endif
!   let out = system('echo 123')
!   " On Windows we may get a trailing space.
!   if out != "123 \n"
! call assert_equal("123\n", out)
!   endif
! 
!   let out = systemlist('echo 123')
!   " On Windows we may get a trailing space and CR.
!   if out != ["123 \r"]
! call assert_equal(['123'], out)
!   endif
! 
call assert_equal('123',   system('cat', '123'))
call assert_equal(['123'], systemlist('cat', '123'))
call assert_equal(["as\df"], systemlist('cat', ["as\df"]))
new Xdummy
call setline(1, ['asdf', "pw\er", ''])
call assert_equal("3\n",  system('wc -l', bufnr('%')))
! 
!   let out = systemlist('wc -l', bufnr('%'))
!   " On Windows we may get a trailing CR.
!   if out != ["3\r"]
! call assert_equal(['3'],  out)
!   endif
! 
!   let out = systemlist('cat', bufnr('%'))
!   " On Windows we may get a trailing CR.
!   if out != ["asdf\r", "pw\er\r", "\r"]
! call assert_equal(['asdf', "pw\er", ''],  out)
!   endif
bwipe!
  
call assert_fails('call system("wc -l", 9)', 'E86:')
*** ../vim-8.0.0152/src/version.c   2017-01-08 13:38:53.028502710 +0100
--- src/version.c   2017-01-08 13:52:33.194418853 +0100
***
*** 766,767 
--- 766,769 
  {   /* Add new patch number below this line */
+ /**/
+ 153,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
218. Your spouse hands you a gift wrapped magnet with your PC's name
 on it and you accuse him or her of genocide.

 /// 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.0152

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0152
Problem:Running the channel test creates channellog.
Solution:   Delete the debug line.
Files:  src/testdir/test_channel.vim


*** ../vim-8.0.0151/src/testdir/test_channel.vim2016-12-03 
14:29:01.636589998 +0100
--- src/testdir/test_channel.vim2017-01-08 13:36:26.617590457 +0100
***
*** 279,285 
  endfunc
  
  func Test_channel_handler()
- call ch_logfile('channellog', 'w')
call ch_log('Test_channel_handler()')
let g:Ch_reply = ""
let s:chopt.callback = 'Ch_handler'
--- 279,284 
*** ../vim-8.0.0151/src/version.c   2017-01-08 13:25:47.626339783 +0100
--- src/version.c   2017-01-08 13:37:21.381183531 +0100
***
*** 766,767 
--- 766,769 
  {   /* Add new patch number below this line */
+ /**/
+ 152,
  /**/

-- 
Don't be humble ... you're not that great.
  -- Golda Meir

 /// 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.0151

2017-01-08 Fir de Conversatie Bram Moolenaar

Patch 8.0.0151
Problem:To pass buffer content to system() and systemlist() one has to
first create a string or list.
Solution:   Allow passing a buffer number. (LemonBoy, closes #1240)
Files:  runtime/doc/eval.txt, src/Makefile, src/evalfunc.c,
src/testdir/Make_all.mak, src/testdir/test_system.vim


*** ../vim-8.0.0150/runtime/doc/eval.txt2016-11-29 21:54:41.120260177 
+0100
--- runtime/doc/eval.txt2017-01-08 13:20:15.812784917 +0100
***
*** 7551,7557 
If {input} is given and is a |List| it is written to the file
in a way |writefile()| does with {binary} set to "b" (i.e.
with a newline between each list item with newlines inside
!   list items converted to NULs).  
  
Pipes are not used, the 'shelltemp' option is not used.
  
--- 7561,7571 
If {input} is given and is a |List| it is written to the file
in a way |writefile()| does with {binary} set to "b" (i.e.
with a newline between each list item with newlines inside
!   list items converted to NULs).
!   When {input} is given and is a number that is a valid id for
!   an existing buffer then the content of the buffer is written
!   to the file line by line, each line terminated by a NL and
!   NULs characters where the text has a NL.
  
Pipes are not used, the 'shelltemp' option is not used.
  
*** ../vim-8.0.0150/src/Makefile2017-01-02 14:27:15.619201170 +0100
--- src/Makefile2017-01-08 13:10:08.673262414 +0100
***
*** 2164,2169 
--- 2164,2170 
test_substitute \
test_syn_attr \
test_syntax \
+   test_system \
test_tabline \
test_tabpage \
test_tagcase \
*** ../vim-8.0.0150/src/evalfunc.c  2017-01-06 20:03:45.426748945 +0100
--- src/evalfunc.c  2017-01-08 13:14:11.223473098 +0100
***
*** 11817,11823 
  char_u*res = NULL;
  char_u*p;
  char_u*infile = NULL;
- char_ubuf[NUMBUFLEN];
  int   err = FALSE;
  FILE  *fd;
  list_T*list = NULL;
--- 11817,11822 
***
*** 11831,11837 
  if (argvars[1].v_type != VAR_UNKNOWN)
  {
/*
!* Write the string to a temp file, to be used for input of the shell
 * command.
 */
if ((infile = vim_tempname('i', TRUE)) == NULL)
--- 11830,11836 
  if (argvars[1].v_type != VAR_UNKNOWN)
  {
/*
!* Write the text to a temp file, to be used for input of the shell
 * command.
 */
if ((infile = vim_tempname('i', TRUE)) == NULL)
***
*** 11846,11859 
EMSG2(_(e_notopen), infile);
goto errret;
}
!   if (argvars[1].v_type == VAR_LIST)
{
if (write_list(fd, argvars[1].vval.v_list, TRUE) == FAIL)
err = TRUE;
}
else
{
!   size_t len;
  
p = get_tv_string_buf_chk(&argvars[1], buf);
if (p == NULL)
--- 11845,11886 
EMSG2(_(e_notopen), infile);
goto errret;
}
!   if (argvars[1].v_type == VAR_NUMBER)
!   {
!   linenr_Tlnum;
!   buf_T   *buf;
! 
!   buf = buflist_findnr(argvars[1].vval.v_number);
!   if (buf == NULL)
!   {
!   EMSGN(_(e_nobufnr), argvars[1].vval.v_number);
!   goto errret;
!   }
! 
!   for (lnum = 1; lnum <= buf->b_ml.ml_line_count; lnum++)
!   {
!   for (p = ml_get_buf(buf, lnum, FALSE); *p != NUL; ++p)
!   if (putc(*p == '\n' ? NUL : *p, fd) == EOF)
!   {
!   err = TRUE;
!   break;
!   }
!   if (putc(NL, fd) == EOF)
!   {
!   err = TRUE;
!   break;
!   }
!   }
!   }
!   else if (argvars[1].v_type == VAR_LIST)
{
if (write_list(fd, argvars[1].vval.v_list, TRUE) == FAIL)
err = TRUE;
}
else
{
!   size_t  len;
!   char_u  buf[NUMBUFLEN];
  
p = get_tv_string_buf_chk(&argvars[1], buf);
if (p == NULL)
*** ../vim-8.0.0150/src/testdir/Make_all.mak2017-01-02 14:27:15.619201170 
+0100
--- src/testdir/Make_all.mak2017-01-08 12:53:25.608672491 +0100
***
*** 184,189 
--- 184,190 
test_stat.res \
test_substitute.res \
test_syntax.res \
+   test_system.res \
test_textobjects.res \
test_undo.res \
test_usercommands.res \
*** ../vim-8.0.0150/src/testdir/test_system.vim 2017-01-08 13:23:40.599275697 
+0100
--- src/testdir/test_syst