Re: Patch 8.1.1406
Hi Bram, 2019/5/27 Mon 5:18:15 UTC+9 Bram Moolenaar wrote: > Patch 8.1.1406 > Problem:popup_hide() and popup_show() not implemented yet. > Solution: Implement the functions. > Files:src/popupwin.c, src/proto/popupwin.pro, src/evalfunc.c, > src/structs.h, runtime/doc/popup.txt, src/screen.c, src/vim.h, > src/testdir/test_popupwin.vim ... > --- 612,621 > #define VALID_BOTLINE 0x20// w_botine and w_empty_rows are valid > #define VALID_BOTLINE_AP 0x40 // w_botine is approximated > #define VALID_TOPLINE 0x80// w_topline is valid (for cursor > position) > ! > ! // Values for w_popup_flags. > ! #define PFL_HIDDEN 1 // popup is not displayed > ! #define PFL_REDRAWN 2 // popup was just redrawn > > /* >* Terminal highlighting attribute bits. The PFL_HIDDEN definition conflicts with the Windows' winsock2 definition: https://ci.appveyor.com/project/chrisbra/vim-win32-installer/build/job/9nghy0drxbyiohfp?fullLog=true#L316 > C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\winsock2.h(985): > warning C4005: 'PFL_HIDDEN': macro redefinition > C:\projects\vim-win32-installer\vim\src\vim.h(617): note: see previous > definition of 'PFL_HIDDEN' This occurs when if_perl is enabled. (We don't enable if_perl in the vim/vim repository on AppVeyor.) Regards, Ken Takata -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/0bb9196d-b395-422d-aed2-0b543719ca9d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.1407
Patch 8.1.1407 Problem:Popup_create() does not support text properties. Solution: Support the third form of the text argument. Files: src/textprop.c, src/proto/textprop.pro, src/popupwin.c, src/testdir/test_popupwin.vim, src/screen.c, src/testdir/dumps/Test_popupwin_02.dump, src/testdir/dumps/Test_popupwin_03.dump, src/testdir/dumps/Test_popupwin_04.dump, runtime/doc/popup.txt *** ../vim-8.1.1406/src/textprop.c 2019-05-25 20:21:24.685950973 +0200 --- src/textprop.c 2019-05-26 23:30:46.064098867 +0200 *** *** 142,164 void f_prop_add(typval_T *argvars, typval_T *rettv UNUSED) { - linenr_T lnum; linenr_T start_lnum; - linenr_T end_lnum; colnr_T start_col; - colnr_T end_col; - dict_T*dict; - char_u*type_name; - proptype_T*type; - buf_T *buf = curbuf; - int id = 0; - char_u*newtext; - int proplen; - size_ttextlen; - char_u*props = NULL; - char_u*newprops; - textprop_Ttmp_prop; - int i; start_lnum = tv_get_number([0]); start_col = tv_get_number([1]); --- 142,149 *** *** 172,178 emsg(_(e_dictreq)); return; } ! dict = argvars[2].vval.v_dict; if (dict == NULL || dict_find(dict, (char_u *)"type", -1) == NULL) { --- 157,194 emsg(_(e_dictreq)); return; } ! ! prop_add_common(start_lnum, start_col, argvars[2].vval.v_dict, ! curbuf, [2]); ! } ! ! /* ! * Shared between prop_add() and popup_create(). ! * "dict_arg" is the function argument of a dict containing "bufnr". ! * it is NULL for popup_create(). ! */ ! void ! prop_add_common( ! linenr_Tstart_lnum, ! colnr_T start_col, ! dict_T *dict, ! buf_T *default_buf, ! typval_T*dict_arg) ! { ! linenr_T lnum; ! linenr_T end_lnum; ! colnr_T end_col; ! char_u*type_name; ! proptype_T*type; ! buf_T *buf = default_buf; ! int id = 0; ! char_u*newtext; ! int proplen; ! size_ttextlen; ! char_u*props = NULL; ! char_u*newprops; ! textprop_Ttmp_prop; ! int i; if (dict == NULL || dict_find(dict, (char_u *)"type", -1) == NULL) { *** *** 221,227 if (dict_find(dict, (char_u *)"id", -1) != NULL) id = dict_get_number(dict, (char_u *)"id"); ! if (get_bufnr_from_arg([2], ) == FAIL) return; type = lookup_prop_type(type_name, buf); --- 237,243 if (dict_find(dict, (char_u *)"id", -1) != NULL) id = dict_get_number(dict, (char_u *)"id"); ! if (dict_arg != NULL && get_bufnr_from_arg(dict_arg, ) == FAIL) return; type = lookup_prop_type(type_name, buf); *** *** 278,289 mch_memmove(newtext, buf->b_ml.ml_line_ptr, textlen); // Find the index where to insert the new property. ! // Since the text properties are not aligned properly when stored with the ! // text, we need to copy them as bytes before using it as a struct. for (i = 0; i < proplen; ++i) { mch_memmove(_prop, props + i * sizeof(textprop_T), ! sizeof(textprop_T)); if (tmp_prop.tp_col >= col) break; } --- 294,305 mch_memmove(newtext, buf->b_ml.ml_line_ptr, textlen); // Find the index where to insert the new property. ! // Since the text properties are not aligned properly when stored with ! // the text, we need to copy them as bytes before using it as a struct. for (i = 0; i < proplen; ++i) { mch_memmove(_prop, props + i * sizeof(textprop_T), ! sizeof(textprop_T)); if (tmp_prop.tp_col >= col) break; } *** *** 298,304 tmp_prop.tp_flags = (lnum > start_lnum ? TP_FLAG_CONT_PREV : 0) | (lnum < end_lnum ? TP_FLAG_CONT_NEXT : 0); mch_memmove(newprops + i * sizeof(textprop_T), _prop, ! sizeof(textprop_T)); if (i < proplen) mch_memmove(newprops + (i + 1) * sizeof(textprop_T), --- 314,320 tmp_prop.tp_flags = (lnum > start_lnum ? TP_FLAG_CONT_PREV : 0) | (lnum < end_lnum ? TP_FLAG_CONT_NEXT : 0); mch_memmove(newprops + i * sizeof(textprop_T), _prop, ! sizeof(textprop_T)); if (i < proplen) mch_memmove(newprops + (i + 1) *
Patch 8.1.1406
Patch 8.1.1406 Problem:popup_hide() and popup_show() not implemented yet. Solution: Implement the functions. Files: src/popupwin.c, src/proto/popupwin.pro, src/evalfunc.c, src/structs.h, runtime/doc/popup.txt, src/screen.c, src/vim.h, src/testdir/test_popupwin.vim *** ../vim-8.1.1405/src/popupwin.c 2019-05-26 21:03:19.940073927 +0200 --- src/popupwin.c 2019-05-26 22:04:53.509693725 +0200 *** *** 195,212 } /* * popup_close({id}) */ void f_popup_close(typval_T *argvars, typval_T *rettv UNUSED) { ! int nr = (int)tv_get_number(argvars); ! popup_close(nr); } static void ! popup_undisplay(win_T *wp) { if (wp->w_winrow + wp->w_height >= cmdline_row) clear_cmdline = TRUE; --- 195,279 } /* + * Find the popup window with window-ID "id". + * If the popup window does not exist NULL is returned. + * If the window is not a popup window, and error message is given. + */ + static win_T * + find_popup_win(int id) + { + win_T *wp = win_id2wp(id); + + if (wp != NULL && !bt_popup(wp->w_buffer)) + { + semsg(_("E993: window %d is not a popup window"), id); + return NULL; + } + return wp; + } + + /* + * Return TRUE if there any popups that are not hidden. + */ + int + popup_any_visible(void) + { + win_T *wp; + + for (wp = first_popupwin; wp != NULL; wp = wp->w_next) + if ((wp->w_popup_flags & PFL_HIDDEN) == 0) + return TRUE; + for (wp = curtab->tp_first_popupwin; wp != NULL; wp = wp->w_next) + if ((wp->w_popup_flags & PFL_HIDDEN) == 0) + return TRUE; + return FALSE; + } + + /* * popup_close({id}) */ void f_popup_close(typval_T *argvars, typval_T *rettv UNUSED) { ! int id = (int)tv_get_number(argvars); ! ! popup_close(id); ! } ! ! /* ! * popup_hide({id}) ! */ ! void ! f_popup_hide(typval_T *argvars, typval_T *rettv UNUSED) ! { ! int id = (int)tv_get_number(argvars); ! win_T *wp = find_popup_win(id); ! ! if (wp != NULL && (wp->w_popup_flags & PFL_HIDDEN) == 0) ! { ! wp->w_popup_flags |= PFL_HIDDEN; ! redraw_all_later(NOT_VALID); ! } ! } ! ! /* ! * popup_show({id}) ! */ ! void ! f_popup_show(typval_T *argvars, typval_T *rettv UNUSED) ! { ! int id = (int)tv_get_number(argvars); ! win_T *wp = find_popup_win(id); ! if (wp != NULL && (wp->w_popup_flags & PFL_HIDDEN) != 0) ! { ! wp->w_popup_flags &= ~PFL_HIDDEN; ! redraw_all_later(NOT_VALID); ! } } static void ! popup_free(win_T *wp) { if (wp->w_winrow + wp->w_height >= cmdline_row) clear_cmdline = TRUE; *** *** 232,238 first_popupwin = wp->w_next; else prev->w_next = wp->w_next; ! popup_undisplay(wp); return; } --- 299,305 first_popupwin = wp->w_next; else prev->w_next = wp->w_next; ! popup_free(wp); return; } *** *** 258,264 *root = wp->w_next; else prev->w_next = wp->w_next; ! popup_undisplay(wp); return; } } --- 325,331 *root = wp->w_next; else prev->w_next = wp->w_next; ! popup_free(wp); return; } } *** ../vim-8.1.1405/src/proto/popupwin.pro 2019-05-26 14:10:59.909979018 +0200 --- src/proto/popupwin.pro 2019-05-26 21:58:55.451508950 +0200 *** *** 1,6 --- 1,9 /* popupwin.c */ void f_popup_create(typval_T *argvars, typval_T *rettv); + int popup_any_visible(void); void f_popup_close(typval_T *argvars, typval_T *rettv); + void f_popup_hide(typval_T *argvars, typval_T *rettv); + void f_popup_show(typval_T *argvars, typval_T *rettv); void popup_close(int id); void popup_close_tabpage(tabpage_T *tp, int id); void close_all_popups(void); *** ../vim-8.1.1405/src/evalfunc.c 2019-05-25 20:21:24.669951062 +0200 --- src/evalfunc.c 2019-05-26 21:49:46.478291418 +0200 *** *** 810,815 --- 810,817 #ifdef FEAT_TEXT_PROP {"popup_close", 1, 1, f_popup_close}, {"popup_create", 2, 2, f_popup_create}, + {"popup_hide",1, 1, f_popup_hide}, + {"popup_show",1, 1, f_popup_show}, #endif #ifdef FEAT_FLOAT {"pow", 2, 2, f_pow}, *** ../vim-8.1.1405/src/structs.h 2019-05-26 20:44:07.105974009 +0200 --- src/structs.h 2019-05-26 21:54:20.348903421 +0200 *** *** 2871,2876 --- 2871,2877 int w_vsep_width; /* Number of separator columns (0 or 1). */ pos_save_Tw_save_cursor; /* backup of cursor pos and topline */ #ifdef FEAT_TEXT_PROP +
Patch 8.1.1405
Patch 8.1.1405 Problem:"highlight" option of popup windows not supported. Solution: Implement the "highlight" option. Files: src/option.c, src/proto/option.pro, src/diff.c src/popupwin.c, runtime/doc/popup.txt, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_01.dump, src/testdir/dumps/Test_popupwin_03.dump *** ../vim-8.1.1404/src/option.c2019-05-25 19:51:03.776408456 +0200 --- src/option.c2019-05-26 21:01:53.068520737 +0200 *** *** 5954,5959 --- 5954,6007 } /* + * Like set_string_option_direct(), but for a window-local option in "wp". + * Blocks autocommands to avoid the old curwin becoming invalid. + */ + void + set_string_option_direct_in_win( + win_T *wp, + char_u *name, + int opt_idx, + char_u *val, + int opt_flags, + int set_sid) + { + win_T *save_curwin = curwin; + + block_autocmds(); + curwin = wp; + curbuf = curwin->w_buffer; + set_string_option_direct(name, opt_idx, val, opt_flags, set_sid); + curwin = save_curwin; + curbuf = curwin->w_buffer; + unblock_autocmds(); + } + + /* + * Like set_string_option_direct(), but for a buffer-local option in "buf". + * Blocks autocommands to avoid the old curbuf becoming invalid. + */ + void + set_string_option_direct_in_buf( + buf_T *buf, + char_u *name, + int opt_idx, + char_u *val, + int opt_flags, + int set_sid) + { + buf_T *save_curbuf = curbuf; + + block_autocmds(); + curbuf = buf; + curwin->w_buffer = curbuf; + set_string_option_direct(name, opt_idx, val, opt_flags, set_sid); + curbuf = save_curbuf; + curwin->w_buffer = curbuf; + unblock_autocmds(); + } + + /* * Set global value for string option when it's a local option. */ static void *** ../vim-8.1.1404/src/proto/option.pro2019-04-10 22:15:15.813016799 +0200 --- src/proto/option.pro2019-05-26 20:24:40.435782299 +0200 *** *** 21,26 --- 21,28 int set_term_option_alloced(char_u **p); int was_set_insecurely(char_u *opt, int opt_flags); void set_string_option_direct(char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid); + void set_string_option_direct_in_win(win_T *wp, char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid); + void set_string_option_direct_in_buf(buf_T *buf, char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid); int valid_spellang(char_u *val); char *check_colorcolumn(win_T *wp); char *check_stl_option(char_u *s); *** ../vim-8.1.1404/src/diff.c 2019-05-24 19:38:59.096545552 +0200 --- src/diff.c 2019-05-26 20:19:45.869309781 +0200 *** *** 1447,1464 wp->w_p_wrap_save = wp->w_p_wrap; wp->w_p_wrap = FALSE; # ifdef FEAT_FOLDING - curwin = wp; - curbuf = curwin->w_buffer; if (!wp->w_p_diff) { if (wp->w_p_diff_saved) free_string_option(wp->w_p_fdm_save); wp->w_p_fdm_save = vim_strsave(wp->w_p_fdm); } ! set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff", OPT_LOCAL|OPT_FREE, 0); - curwin = old_curwin; - curbuf = curwin->w_buffer; if (!wp->w_p_diff) { wp->w_p_fdc_save = wp->w_p_fdc; --- 1447,1460 wp->w_p_wrap_save = wp->w_p_wrap; wp->w_p_wrap = FALSE; # ifdef FEAT_FOLDING if (!wp->w_p_diff) { if (wp->w_p_diff_saved) free_string_option(wp->w_p_fdm_save); wp->w_p_fdm_save = vim_strsave(wp->w_p_fdm); } ! set_string_option_direct_in_win(wp, (char_u *)"fdm", -1, (char_u *)"diff", OPT_LOCAL|OPT_FREE, 0); if (!wp->w_p_diff) { wp->w_p_fdc_save = wp->w_p_fdc; *** ../vim-8.1.1404/src/popupwin.c 2019-05-26 20:44:07.105974009 +0200 --- src/popupwin.c 2019-05-26 20:44:54.193735465 +0200 *** *** 23,28 --- 23,29 apply_options(win_T *wp, buf_T *buf UNUSED, dict_T *dict) { int nr; + char_u *str; wp->w_maxwidth = dict_get_number(dict, (char_u *)"maxwidth"); wp->w_maxheight = dict_get_number(dict, (char_u *)"maxheight"); *** *** 52,57 --- 53,62 } #endif + str = dict_get_string(dict, (char_u *)"highlight", TRUE); + if (str != NULL) + set_string_option_direct_in_win(wp, (char_u *)"wincolor", -1, + str, OPT_FREE|OPT_LOCAL, 0); } /* *** *** 94,105 if (buf == NULL) return; ml_open(buf); ! curbuf = buf; ! set_string_option_direct((char_u *)"buftype", -1,
Patch 8.1.1404
Patch 8.1.1404 Problem:Cannot change the patch level when building with NSIS. Solution: Use $PATCHLEVEL if defined. (Christian Brabandt) Files: nsis/gvim.nsi *** ../vim-8.1.1403/nsis/gvim.nsi 2019-05-17 12:36:52.776893221 +0200 --- nsis/gvim.nsi 2019-05-26 20:49:16.692399720 +0200 *** *** 47,52 --- 47,57 !include gvim_version.nsh # for version number + # Definition of Patch for Vim + !ifndef PATCHLEVEL + !define PATCHLEVEL 0 + !endif + # --- No configurable settings below this line --- !include "Library.nsh"# For DLL install *** *** 181,188 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Vim" VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright (C) 1996" VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Vi Improved - A Text Editor" ! VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VER_MAJOR}.${VER_MINOR}.0.0" ! VIProductVersion "${VER_MAJOR}.${VER_MINOR}.0.0" # Global variables Var vim_dialog --- 186,193 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Vim" VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright (C) 1996" VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Vi Improved - A Text Editor" ! VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VER_MAJOR}.${VER_MINOR}.${PATCHLEVEL}.0" ! VIProductVersion "${VER_MAJOR}.${VER_MINOR}.${PATCHLEVEL}.0" # Global variables Var vim_dialog *** ../vim-8.1.1403/src/version.c 2019-05-26 20:44:07.105974009 +0200 --- src/version.c 2019-05-26 20:48:28.716644481 +0200 *** *** 769,770 --- 769,772 { /* Add new patch number below this line */ + /**/ + 1404, /**/ -- hundred-and-one symptoms of being an internet addict: 34. You laugh at people with a 10 Mbit connection. /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/201905261850.x4QIoCF1014020%40masaka.moolenaar.net. For more options, visit https://groups.google.com/d/optout.
Plugins exposing events to other plugins
Hi all, As a brief summary, govim (https://github.com/myitcv/govim) is a Vim8.1 channel-based plugin, written in Go, that is a Language Server Protocol (LSP) client (https://github.com/Microsoft/language-server-protocol/blob/gh-pages/specification.md). The TL;DR version is that such a plugin can, with the LSP server it connects to, provide answers on everything from jump-to-definition, code completion... and much more. This functionality is exposed via functions, commands and autocmds. A recent issue raised highlighted the fact that YouCompleteMe (YCM) does not appear to play well with govim: https://github.com/myitcv/govim/issues/247 This was effectively tracked down to the fact that both govim and YCM rely on TextChanged/TextChangedI autocmds to do their work; YCM to trigger an omnifunc completion when a '.' character is pressed, and govim to update the LSP server with the latest buffer contents: https://github.com/Valloric/YouCompleteMe/issues/3408 The issue reported occurs when the YCM TextChangedI autocmd fires before the govim autocmd; effectively a completion is attempted beyond the end of a line (in some cases). Ignoring for one second that there is significant overlap between what YCM and govim are trying to do here from a completion perspective, it strikes me that plugins like govim might well want to expose events that other plugins can hook into. In this case, on such event would be "post LSP textDocument/didChange" (textDocument/didChange is the LSP event notified from client -> server when a document loaded in the editor changes) Is there a standard means by which plugins like govim should expose such events? Any pointers would be much appreciated. Thanks, Paul -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/CACoUkn71Dv1b1Jamgcw8Fp8Q0cwzVrhZ%3DCOeeBOkmGXDM1rXhg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.1403
Patch 8.1.1403 Problem:Cannot build without the timer feature. Solution: Add #ifdef. Files: src/structs.h, src/window.c, src/popupwin.c, src/testdir/test_popupwin.vim *** ../vim-8.1.1402/src/structs.h 2019-05-26 20:10:02.604276366 +0200 --- src/structs.h 2019-05-26 20:37:16.352032625 +0200 *** *** 2874,2880 --- 2874,2882 int w_zindex; int w_maxheight;// "maxheight" for popup window int w_maxwidth; // "maxwidth" for popup window + # if defined(FEAT_TIMERS) timer_T *w_popup_timer; // timer for closing popup window + # endif #endif *** ../vim-8.1.1402/src/window.c2019-05-26 20:10:02.604276366 +0200 --- src/window.c2019-05-26 20:38:09.435769462 +0200 *** *** 4859,4864 --- 4859,4865 return wp == aucmd_win || bt_popup(wp->w_buffer); } + #if defined(FEAT_TEXT_PROP) || defined(PROTO) /* * Free a popup window. This does not take the window out of the window list * and assumes there is only one toplevel frame, no split. *** *** 4867,4877 --- 4868,4881 win_free_popup(win_T *win) { win_close_buffer(win, TRUE, FALSE); + # if defined(FEAT_TIMERS) if (win->w_popup_timer != NULL) stop_timer(win->w_popup_timer); + # endif vim_free(win->w_frame); win_free(win, NULL); } + #endif /* * Append window "wp" in the window list after window "after". *** ../vim-8.1.1402/src/popupwin.c 2019-05-26 20:10:02.604276366 +0200 --- src/popupwin.c 2019-05-26 20:43:32.806147513 +0200 *** *** 30,35 --- 30,36 wp->w_wincol = dict_get_number(dict, (char_u *)"col"); wp->w_zindex = dict_get_number(dict, (char_u *)"zindex"); + #if defined(FEAT_TIMERS) // Add timer to close the popup after some time. nr = dict_get_number(dict, (char_u *)"time"); if (nr > 0) *** *** 49,54 --- 50,56 wp->w_popup_timer->tr_partial = tv.vval.v_partial; } } + #endif } *** ../vim-8.1.1402/src/testdir/test_popupwin.vim 2019-05-26 20:10:02.604276366 +0200 --- src/testdir/test_popupwin.vim 2019-05-26 20:42:03.266599309 +0200 *** *** 39,44 --- 39,47 endfunc func Test_popup_time() + if !has('timers') + return + endif topleft vnew call setline(1, 'hello') *** *** 52,57 --- 55,61 call assert_equal('world', line) sleep 700m + redraw let line = join(map(range(1, 5), 'screenstring(1, v:val)'), '') call assert_equal('hello', line) *** ../vim-8.1.1402/src/version.c 2019-05-26 20:10:02.604276366 +0200 --- src/version.c 2019-05-26 20:34:08.880951767 +0200 *** *** 769,770 --- 769,772 { /* Add new patch number below this line */ + /**/ + 1403, /**/ -- To define recursion, we must first define recursion. /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/201905261844.x4QIiOqp012715%40masaka.moolenaar.net. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.1402
Patch 8.1.1402 Problem:"timer" option of popup windows not supported. Solution: Implement the "timer" option. (Yasuhiro Matsumoto, closes #4439) Files: src/structs.h, src/testdir/test_popupwin.vim, src/popupwin.c, src/window.c, runtime/doc/popup.txt *** ../vim-8.1.1401/src/structs.h 2019-05-25 19:51:03.780408437 +0200 --- src/structs.h 2019-05-26 19:36:12.090670162 +0200 *** *** 1941,1946 --- 1941,1964 } syn_time_T; #endif + typedef struct timer_S timer_T; + struct timer_S + { + long tr_id; + #ifdef FEAT_TIMERS + timer_T *tr_next; + timer_T *tr_prev; + proftime_Ttr_due; /* when the callback is to be invoked */ + char tr_firing; /* when TRUE callback is being called */ + char tr_paused; /* when TRUE callback is not invoked */ + int tr_repeat; /* number of times to repeat, -1 forever */ + long tr_interval;/* msec */ + char_u*tr_callback; /* allocated */ + partial_T *tr_partial; + int tr_emsg_count; + #endif + }; + #ifdef FEAT_CRYPT /* * Structure to hold the type of encryption and the state of encryption or *** *** 2856,2861 --- 2874,2880 int w_zindex; int w_maxheight;// "maxheight" for popup window int w_maxwidth; // "maxwidth" for popup window + timer_T *w_popup_timer; // timer for closing popup window #endif *** *** 3434,3457 }; typedef struct js_reader js_read_T; - typedef struct timer_S timer_T; - struct timer_S - { - long tr_id; - #ifdef FEAT_TIMERS - timer_T *tr_next; - timer_T *tr_prev; - proftime_Ttr_due; /* when the callback is to be invoked */ - char tr_firing; /* when TRUE callback is being called */ - char tr_paused; /* when TRUE callback is not invoked */ - int tr_repeat; /* number of times to repeat, -1 forever */ - long tr_interval;/* msec */ - char_u*tr_callback; /* allocated */ - partial_T *tr_partial; - int tr_emsg_count; - #endif - }; - /* Maximum number of commands from + or -c arguments. */ #define MAX_ARG_CMDS 10 --- 3453,3458 *** ../vim-8.1.1401/src/testdir/test_popupwin.vim 2019-05-26 14:10:59.909979018 +0200 --- src/testdir/test_popupwin.vim 2019-05-26 20:07:58.804887372 +0200 *** *** 37,39 --- 37,73 call StopVimInTerminal(buf) call delete('XtestPopup') endfunc + + func Test_popup_time() + topleft vnew + call setline(1, 'hello') + + call popup_create('world', { + \ 'line': 1, + \ 'col': 1, + \ 'time': 500, + \}) + redraw + let line = join(map(range(1, 5), 'screenstring(1, v:val)'), '') + call assert_equal('world', line) + + sleep 700m + let line = join(map(range(1, 5), 'screenstring(1, v:val)'), '') + call assert_equal('hello', line) + + call popup_create('on the command line', { + \ 'line': , + \ 'col': 10, + \ 'time': 500, + \}) + redraw + let line = join(map(range(1, 30), 'screenstring(, v:val)'), '') + call assert_match('.*on the command line.*', line) + + sleep 700m + redraw + let line = join(map(range(1, 30), 'screenstring(, v:val)'), '') + call assert_notmatch('.*on the command line.*', line) + + bwipe! + endfunc *** ../vim-8.1.1401/src/popupwin.c 2019-05-26 18:48:09.402542633 +0200 --- src/popupwin.c 2019-05-26 20:05:06.193720441 +0200 *** *** 22,32 --- 22,55 static void apply_options(win_T *wp, buf_T *buf UNUSED, dict_T *dict) { + int nr; + wp->w_maxwidth = dict_get_number(dict, (char_u *)"maxwidth"); wp->w_maxheight = dict_get_number(dict, (char_u *)"maxheight"); wp->w_winrow = dict_get_number(dict, (char_u *)"line"); wp->w_wincol = dict_get_number(dict, (char_u *)"col"); wp->w_zindex = dict_get_number(dict, (char_u *)"zindex"); + + // Add timer to close the popup after some time. + nr = dict_get_number(dict, (char_u *)"time"); + if (nr > 0) + { + char_u cbbuf[50]; + char_u *ptr = cbbuf; + typval_Ttv; + + vim_snprintf((char *)cbbuf, sizeof(cbbuf), + "{_ -> popup_close(%d)}", wp->w_id); + if (get_lambda_tv(, , TRUE) == OK) + { + wp->w_popup_timer = create_timer(nr, 0); + wp->w_popup_timer->tr_callback = + vim_strsave(partial_name(tv.vval.v_partial)); + func_ref(wp->w_popup_timer->tr_callback); + wp->w_popup_timer->tr_partial = tv.vval.v_partial; + } + } + } /* *** *** 177,182 --- 200,214
Patch 8.1.1401
Patch 8.1.1401 Problem:Misspelled mkspellmem as makespellmem. Solution: Drop duplicate help entry, fix test. (Naruhiko Nishino, Ken Takata, closes #4437) Files: runtime/doc/options.txt, src/testdir/test_modeline.vim *** ../vim-8.1.1400/runtime/doc/options.txt 2019-05-25 19:51:03.772408479 +0200 --- runtime/doc/options.txt 2019-05-25 22:15:53.049576750 +0200 *** *** 4913,4924 < This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. - *'makespellmem'* *'msm'* - 'makespellmem' 'msm' string (default "46,2000,500") - global - Values relevant only when compressing a spell file, see |spell|. - This option cannot be set from a |modeline| or in the |sandbox|. - *'matchpairs'* *'mps'* 'matchpairs' 'mps'string (default "(:),{:},[:]") local to buffer --- 4913,4918 *** *** 5070,5075 --- 5064,5071 < If you have less than 512 Mbyte |:mkspell| may fail for some languages, no matter what you set 'mkspellmem' to. + This option cannot be set from a |modeline| or in the |sandbox|. + *'modeline'* *'ml'* *'nomodeline'* *'noml'* 'modeline' 'ml' boolean (Vim default: on (off for root), Vi default: off) *** ../vim-8.1.1400/src/testdir/test_modeline.vim 2019-05-23 17:35:52.154999830 +0200 --- src/testdir/test_modeline.vim 2019-05-26 19:02:47.750214557 +0200 *** *** 116,122 call s:modeline_fails('luadll', 'luadll=Something()', 'E520:') call s:modeline_fails('makeef', 'makeef=Something()', 'E520:') call s:modeline_fails('makeprg', 'makeprg=Something()', 'E520:') ! call s:modeline_fails('makespellmem', 'makespellmem=Something()', 'E520:') call s:modeline_fails('mzschemedll', 'mzschemedll=Something()', 'E520:') call s:modeline_fails('mzschemegcdll', 'mzschemegcdll=Something()', 'E520:') call s:modeline_fails('modelineexpr', 'modelineexpr', 'E520:') --- 116,122 call s:modeline_fails('luadll', 'luadll=Something()', 'E520:') call s:modeline_fails('makeef', 'makeef=Something()', 'E520:') call s:modeline_fails('makeprg', 'makeprg=Something()', 'E520:') ! call s:modeline_fails('mkspellmem', 'mkspellmem=Something()', 'E520:') call s:modeline_fails('mzschemedll', 'mzschemedll=Something()', 'E520:') call s:modeline_fails('mzschemegcdll', 'mzschemegcdll=Something()', 'E520:') call s:modeline_fails('modelineexpr', 'modelineexpr', 'E520:') *** ../vim-8.1.1400/src/version.c 2019-05-26 18:48:09.406542616 +0200 --- src/version.c 2019-05-26 19:18:18.701437614 +0200 *** *** 769,770 --- 769,772 { /* Add new patch number below this line */ + /**/ + 1401, /**/ -- hundred-and-one symptoms of being an internet addict: 33. You name your children Eudora, Mozilla and Dotcom. /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/201905261720.x4QHKwgk028084%40masaka.moolenaar.net. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.1400
Patch 8.1.1400 Problem:Using global pointer for tab-local popups is clumsy. Solution: Use the pointer in tabpage_T. Files: src/popupwin.c, src/globals.h, src/eval.c, src/screen.c, src/window.c *** ../vim-8.1.1399/src/popupwin.c 2019-05-26 14:10:59.909979018 +0200 --- src/popupwin.c 2019-05-26 18:35:27.278514988 +0200 *** *** 85,92 if (nr == 0) { // popup on current tab ! wp->w_next = first_tab_popupwin; ! first_tab_popupwin = wp; } else if (nr < 0) { --- 85,92 if (nr == 0) { // popup on current tab ! wp->w_next = curtab->tp_first_popupwin; ! curtab->tp_first_popupwin = wp; } else if (nr < 0) { *** *** 212,224 popup_close_tabpage(tabpage_T *tp, int id) { win_T *wp; ! win_T **root; win_T *prev = NULL; - if (tp == curtab) - root = _tab_popupwin; - else - root = >tp_first_popupwin; for (wp = *root; wp != NULL; prev = wp, wp = wp->w_next) if (wp->w_id == id) { --- 212,220 popup_close_tabpage(tabpage_T *tp, int id) { win_T *wp; ! win_T **root = >tp_first_popupwin; win_T *prev = NULL; for (wp = *root; wp != NULL; prev = wp, wp = wp->w_next) if (wp->w_id == id) { *** *** 237,244 { while (first_popupwin != NULL) popup_close(first_popupwin->w_id); ! while (first_tab_popupwin != NULL) ! popup_close(first_tab_popupwin->w_id); } void --- 233,240 { while (first_popupwin != NULL) popup_close(first_popupwin->w_id); ! while (curtab->tp_first_popupwin != NULL) ! popup_close(curtab->tp_first_popupwin->w_id); } void *** ../vim-8.1.1399/src/globals.h 2019-05-25 19:51:03.776408456 +0200 --- src/globals.h 2019-05-26 18:40:51.312802393 +0200 *** *** 582,588 EXTERN intaucmd_win_used INIT(= FALSE); /* aucmd_win is being used */ #ifdef FEAT_TEXT_PROP - EXTERN win_T*first_tab_popupwin; // first popup window local to tab page EXTERN win_T*first_popupwin; // first global popup window #endif --- 582,587 *** ../vim-8.1.1399/src/eval.c 2019-05-25 19:51:03.776408456 +0200 --- src/eval.c 2019-05-26 18:37:25.693888227 +0200 *** *** 5589,5600 for (wp = first_popupwin; wp != NULL; wp = wp->w_next) abort = abort || set_ref_in_item(>w_winvar.di_tv, copyID, NULL, NULL); - for (wp = first_tab_popupwin; wp != NULL; wp = wp->w_next) - abort = abort || set_ref_in_item(>w_winvar.di_tv, copyID, - NULL, NULL); FOR_ALL_TABPAGES(tp) ! if (tp != curtab) ! for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next) abort = abort || set_ref_in_item(>w_winvar.di_tv, copyID, NULL, NULL); #endif --- 5589,5596 for (wp = first_popupwin; wp != NULL; wp = wp->w_next) abort = abort || set_ref_in_item(>w_winvar.di_tv, copyID, NULL, NULL); FOR_ALL_TABPAGES(tp) ! for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next) abort = abort || set_ref_in_item(>w_winvar.di_tv, copyID, NULL, NULL); #endif *** *** 8816,8827 if (nr >= LOWEST_WIN_ID) { #ifdef FEAT_TEXT_PROP ! // popup windows are in a separate list ! for (wp = (tp == NULL || tp == curtab) ! ? first_tab_popupwin : tp->tp_first_popupwin; ! wp != NULL; wp = wp->w_next) if (wp->w_id == nr) return wp; for (wp = first_popupwin; wp != NULL; wp = wp->w_next) if (wp->w_id == nr) return wp; --- 8812,8822 if (nr >= LOWEST_WIN_ID) { #ifdef FEAT_TEXT_PROP ! // check tab-local popup windows ! for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next) if (wp->w_id == nr) return wp; + // check global popup windows for (wp = first_popupwin; wp != NULL; wp = wp->w_next) if (wp->w_id == nr) return wp; *** ../vim-8.1.1399/src/screen.c2019-05-25 22:56:46.679669071 +0200 --- src/screen.c2019-05-26 18:38:53.905422054 +0200 *** *** 610,616 } #ifdef FEAT_TEXT_PROP // TODO: avoid redrawing everything when there is a popup window. ! if (first_popupwin != NULL || first_tab_popupwin != NULL) type = NOT_VALID; #endif --- 610,616 } #ifdef FEAT_TEXT_PROP // TODO:
Re: Link error in Tiny and Small affter applying patches 8.1.1391 to 1396
On Sun, May 26, 2019 at 1:14 PM Bram Moolenaar wrote: > > > Tony wrote: > > > See below the error (at src/Makefile line 2009) as displayed in the > > Tiny build without GUI but with +xterm_save. Small with Motif GUI > > gives the same error. No error in Normal, Big and Huge with GTK2 GUI. > > [...] > > /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: > > objects/screen.o: in function `win_draw_end.constprop.20': > > screen.c:(.text+0x3712): undefined reference to `hl_combine_attr' > > /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: > > screen.c:(.text+0x3732): undefined reference to `hl_combine_attr' > > /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: > > objects/screen.o: in function `win_line.isra.14': > > screen.c:(.text+0x45f4): undefined reference to `hl_combine_attr' > > collect2: error: ld returned 1 exit status > > link.sh: Linking failed > > make: *** [Makefile:2009: vi] Error 1 > > exit status 2 > > Should be fixed by patch 8.1.1397. > Yes, it was. Thanks Bram! Best regards, Tony. -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/CAJkCKXtSo2x_M2cKQv992uf9ssfHfShND_KPfPWhHQs58bjMUw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.1399
Patch 8.1.1399 Problem:Popup windows not adjusted when switching tabs. Solution: Save and restore first_tab_popupwin. Fix closing a tabpage. Files: src/window.c, src/popupwin.c, src/proto/popupwin.pro, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_02.dump, src/testdir/dumps/Test_popupwin_03.dump, src/testdir/dumps/Test_popupwin_04.dump *** ../vim-8.1.1398/src/window.c2019-05-25 20:10:32.837684661 +0200 --- src/window.c2019-05-26 14:02:01.612768844 +0200 *** *** 3670,3677 diff_clear(tp); # endif # ifdef FEAT_TEXT_PROP ! while (tp->tp_first_popupwin != NULL) ! popup_close(tp->tp_first_popupwin->w_id); #endif for (idx = 0; idx < SNAP_COUNT; ++idx) clear_snapshot(tp, idx); --- 3670,3686 diff_clear(tp); # endif # ifdef FEAT_TEXT_PROP ! { ! win_T *wp; ! ! for (;;) ! { ! wp = tp == curtab ? first_tab_popupwin : tp->tp_first_popupwin; ! if (wp == NULL) ! break; ! popup_close_tabpage(tp, wp->w_id); ! } ! } #endif for (idx = 0; idx < SNAP_COUNT; ++idx) clear_snapshot(tp, idx); *** *** 3964,3969 --- 3973,3982 tp->tp_prevwin = prevwin; tp->tp_firstwin = firstwin; tp->tp_lastwin = lastwin; + #ifdef FEAT_TEXT_PROP + tp->tp_first_popupwin = first_tab_popupwin; + first_tab_popupwin = NULL; + #endif tp->tp_old_Rows = Rows; tp->tp_old_Columns = Columns; firstwin = NULL; *** *** 3991,3996 --- 4004,4012 firstwin = tp->tp_firstwin; lastwin = tp->tp_lastwin; topframe = tp->tp_topframe; + #ifdef FEAT_TEXT_PROP + first_tab_popupwin = tp->tp_first_popupwin; + #endif /* We would like doing the TabEnter event first, but we don't have a * valid current window yet, which may break some commands. *** *** 6497,6505 --- 6513,6527 { curtab->tp_firstwin = firstwin; curtab->tp_lastwin = lastwin; + #ifdef FEAT_TEXT_PROP + curtab->tp_first_popupwin = first_tab_popupwin ; + #endif curtab = tp; firstwin = curtab->tp_firstwin; lastwin = curtab->tp_lastwin; + #ifdef FEAT_TEXT_PROP + first_tab_popupwin = curtab->tp_first_popupwin; + #endif } else goto_tabpage_tp(tp, FALSE, FALSE); *** *** 6528,6536 --- 6550,6564 { curtab->tp_firstwin = firstwin; curtab->tp_lastwin = lastwin; + #ifdef FEAT_TEXT_PROP + curtab->tp_first_popupwin = first_tab_popupwin ; + #endif curtab = save_curtab; firstwin = curtab->tp_firstwin; lastwin = curtab->tp_lastwin; + #ifdef FEAT_TEXT_PROP + first_tab_popupwin = curtab->tp_first_popupwin; + #endif } else goto_tabpage_tp(save_curtab, FALSE, FALSE); *** ../vim-8.1.1398/src/popupwin.c 2019-05-25 19:51:03.776408456 +0200 --- src/popupwin.c 2019-05-26 13:56:33.486438052 +0200 *** *** 177,216 popup_close(nr); } void ! popup_close(int nr) { win_T *wp; win_T *prev = NULL; for (wp = first_popupwin; wp != NULL; prev = wp, wp = wp->w_next) ! if (wp->w_id == nr) { if (prev == NULL) first_popupwin = wp->w_next; else prev->w_next = wp->w_next; ! break; } ! if (wp == NULL) ! { ! prev = NULL; ! for (wp = first_tab_popupwin; wp != NULL; prev = wp, wp = wp->w_next) ! if (wp->w_id == nr) ! { ! if (prev == NULL) ! first_tab_popupwin = wp->w_next; ! else ! prev->w_next = wp->w_next; ! break; ! } ! } ! if (wp != NULL) ! { ! win_free_popup(wp); ! redraw_all_later(NOT_VALID); ! } } void --- 177,235 popup_close(nr); } + /* + * Close a popup window by Window-id. + */ void ! popup_close(int id) { win_T *wp; + tabpage_T *tp; win_T *prev = NULL; + // go through global popups for (wp = first_popupwin; wp != NULL; prev = wp, wp = wp->w_next) ! if (wp->w_id == id) { if (prev == NULL) first_popupwin = wp->w_next; else prev->w_next = wp->w_next; ! win_free_popup(wp); ! redraw_all_later(NOT_VALID); ! return; } ! // go through tab-local popups ! FOR_ALL_TABPAGES(tp) ! popup_close_tabpage(tp, id); ! } ! ! /* ! * Close a popup window with Window-id "id" in tabpage "tp". ! */ ! void ! popup_close_tabpage(tabpage_T *tp, int id) ! { ! win_T *wp; ! win_T **root; ! win_T *prev
Re: Link error in Tiny and Small affter applying patches 8.1.1391 to 1396
Tony wrote: > See below the error (at src/Makefile line 2009) as displayed in the > Tiny build without GUI but with +xterm_save. Small with Motif GUI > gives the same error. No error in Normal, Big and Huge with GTK2 GUI. > > link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly. > gcc -L/usr/local/lib -Wl,--as-needed-o vi objects/arabic.o > objects/autocmd.o objects/beval.o objects/buffer.o objects/change.o > objects/blob.o objects/blowfish.o objects/crypt.o objects/crypt_zip.o > objects/debugger.o objects/dict.o objects/diff.o objects/digraph.o > objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o > objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o > objects/ex_getln.o objects/fileio.o objects/findfile.o objects/fold.o > objects/getchar.o objects/hardcopy.o objects/hashtab.o > objects/if_cscope.o objects/if_xcmdsrv.o objects/indent.o > objects/insexpand.o objects/list.o objects/mark.o objects/memline.o > objects/menu.o objects/misc1.o objects/misc2.o objects/move.o > objects/mbyte.o objects/normal.o objects/ops.o objects/option.o > objects/os_unix.o objects/pathdef.o objects/popupmnu.o > objects/popupwin.o objects/pty.o objects/quickfix.o objects/regexp.o > objects/screen.o objects/search.o objects/sha256.o objects/sign.o > objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o > objects/term.o objects/terminal.o objects/textprop.o objects/ui.o > objects/undo.o objects/usercmd.o objects/userfunc.o objects/version.o > objects/window.o objects/xdiffi.o objects/xemit.o > objects/xprepare.o objects/xutils.o objects/xhistogram.o > objects/xpatience.o objects/charset.o objects/json.o objects/main.o > objects/memfile.o objects/message.o-lSM -lICE -lXpm -lXt -lX11 > -lXdmcp -lSM -lICE -lm -ltinfo -lelf -lgpm -ldl > /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: > objects/screen.o: in function `win_draw_end.constprop.20': > screen.c:(.text+0x3712): undefined reference to `hl_combine_attr' > /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: > screen.c:(.text+0x3732): undefined reference to `hl_combine_attr' > /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: > objects/screen.o: in function `win_line.isra.14': > screen.c:(.text+0x45f4): undefined reference to `hl_combine_attr' > collect2: error: ld returned 1 exit status > link.sh: Linking failed > make: *** [Makefile:2009: vi] Error 1 > exit status 2 Should be fixed by patch 8.1.1397. -- If you put 7 of the most talented OSS developers in a room for a week and asked them to fix a bug in a spreadsheet program, in 1 week you'd have 2 new mail readers and a text-based web browser. /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/201905261114.x4QBELZE025094%40masaka.moolenaar.net. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.1398
Patch 8.1.1398 Problem:Duplicate line in MSVC build file. Solution: Remove the line. (Ken Takata, closes #4436) Files: src/Make_mvc.mak *** ../vim-8.1.1397/src/Make_mvc.mak2019-05-25 19:51:03.772408479 +0200 --- src/Make_mvc.mak2019-05-26 13:12:52.295554159 +0200 *** *** 744,750 $(OUTDIR)\pathdef.obj \ $(OUTDIR)\popupmnu.obj \ $(OUTDIR)\popupwin.obj \ - $(OUTDIR)\popupwin.obj \ $(OUTDIR)\quickfix.obj \ $(OUTDIR)\regexp.obj \ $(OUTDIR)\screen.obj \ --- 744,749 *** ../vim-8.1.1397/src/version.c 2019-05-25 23:42:10.230781069 +0200 --- src/version.c 2019-05-26 13:13:25.951384640 +0200 *** *** 769,770 --- 769,772 { /* Add new patch number below this line */ + /**/ + 1398, /**/ -- Due knot trussed yore spell chequer two fined awl miss steaks. /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/201905261114.x4QBELxO025100%40masaka.moolenaar.net. For more options, visit https://groups.google.com/d/optout.
Re: Listener functionality
Hi Bram, > So do you think that the last callback should in fact be two callbacks? Thanks for your fix in v8.1.1389 and all the work before that for listener_add - I've landed initial support for delta-based updates in govim: https://github.com/myitcv/govim/commit/ad260329614442948d653c270343cbf0e32d5f01 Will report back if I find any further issues in the wild. Paul -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/CACoUkn4fac3Zpk0bsJVbLkQyXCNwN7fcENv1jV6WWXf%3D8xdRTg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.