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